Generated by Cython 0.29.2
Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.
Raw output: _GG03.c
+0001: # cython: boundscheck=False
__pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test_2, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
0002: # cython: wraparound=False
0003: # cython: cdivision=True
0004: #
0005: cimport cython
0006: cimport numpy as np
0007: from cpython cimport bool
0008: from libc.math cimport sqrt as Csqrt, ceil as Cceil, fabs as Cabs
0009: from libc.math cimport floor as Cfloor, round as Cround, log2 as Clog2
0010: from libc.math cimport cos as Ccos, acos as Cacos, sin as Csin, asin as Casin
0011: from libc.math cimport atan2 as Catan2, pi as Cpi
0012: from libc.math cimport NAN as Cnan
0013: from cpython.array cimport array, clone
0014: from cython.parallel import prange
0015: from cython.parallel cimport parallel
0016: from libc.stdlib cimport malloc, free, realloc
+0017: cdef double _VSMALL = 1.e-9
__pyx_v_4tofu_4geom_5_GG03__VSMALL = 1.e-9;
+0018: cdef double _SMALL = 1.e-6
__pyx_v_4tofu_4geom_5_GG03__SMALL = 1.e-6;
0019:
0020:
0021: # import
+0022: import sys
__pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0023: import numpy as np
__pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 23, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0024: import scipy.integrate as scpintg
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s__157); __Pyx_GIVEREF(__pyx_n_s__157); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s__157); __pyx_t_2 = __Pyx_Import(__pyx_n_s_scipy_integrate, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (PyDict_SetItem(__pyx_d, __pyx_n_s_scpintg, __pyx_t_2) < 0) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0025: from matplotlib.path import Path
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_Path); __Pyx_GIVEREF(__pyx_n_s_Path); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Path); __pyx_t_1 = __Pyx_Import(__pyx_n_s_matplotlib_path, __pyx_t_2, -1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_Path, __pyx_t_2) < 0) __PYX_ERR(0, 25, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0026:
+0027: if sys.version[0]=='3':
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_version); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s_3, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L2; }
+0028: from inspect import signature as insp
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_signature); __Pyx_GIVEREF(__pyx_n_s_signature); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_signature); __pyx_t_2 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, __pyx_t_1, -1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_signature); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_insp, __pyx_t_1) < 0) __PYX_ERR(0, 28, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0029: elif sys.version[0]=='2':
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s_2, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 29, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ } __pyx_L2:;
+0030: from inspect import getargspec as insp
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_getargspec); __Pyx_GIVEREF(__pyx_n_s_getargspec); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_getargspec); __pyx_t_1 = __Pyx_patch_inspect(__Pyx_Import(__pyx_n_s_inspect, __pyx_t_2, -1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_getargspec); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_d, __pyx_n_s_insp, __pyx_t_2) < 0) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0031:
0032:
0033:
+0034: __all__ = ['CoordShift',
__pyx_t_1 = PyList_New(39); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_CoordShift); __Pyx_GIVEREF(__pyx_n_s_CoordShift); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_CoordShift); __Pyx_INCREF(__pyx_n_s_comp_dist_los_circle); __Pyx_GIVEREF(__pyx_n_s_comp_dist_los_circle); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_comp_dist_los_circle); __Pyx_INCREF(__pyx_n_s_comp_dist_los_circle_vec); __Pyx_GIVEREF(__pyx_n_s_comp_dist_los_circle_vec); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_comp_dist_los_circle_vec); __Pyx_INCREF(__pyx_n_s_comp_dist_los_vpoly); __Pyx_GIVEREF(__pyx_n_s_comp_dist_los_vpoly); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_comp_dist_los_vpoly); __Pyx_INCREF(__pyx_n_s_comp_dist_los_vpoly_vec); __Pyx_GIVEREF(__pyx_n_s_comp_dist_los_vpoly_vec); PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_comp_dist_los_vpoly_vec); __Pyx_INCREF(__pyx_n_s_is_close_los_vpoly_vec); __Pyx_GIVEREF(__pyx_n_s_is_close_los_vpoly_vec); PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_s_is_close_los_vpoly_vec); __Pyx_INCREF(__pyx_n_s_is_close_los_circle); __Pyx_GIVEREF(__pyx_n_s_is_close_los_circle); PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_s_is_close_los_circle); __Pyx_INCREF(__pyx_n_s_is_close_los_circle_vec); __Pyx_GIVEREF(__pyx_n_s_is_close_los_circle_vec); PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_s_is_close_los_circle_vec); __Pyx_INCREF(__pyx_n_s_which_los_closer_vpoly_vec); __Pyx_GIVEREF(__pyx_n_s_which_los_closer_vpoly_vec); PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_s_which_los_closer_vpoly_vec); __Pyx_INCREF(__pyx_n_s_which_vpoly_closer_los_vec); __Pyx_GIVEREF(__pyx_n_s_which_vpoly_closer_los_vec); PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_s_which_vpoly_closer_los_vec); __Pyx_INCREF(__pyx_n_s_LOS_sino_findRootkPMin_Tor); __Pyx_GIVEREF(__pyx_n_s_LOS_sino_findRootkPMin_Tor); PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_s_LOS_sino_findRootkPMin_Tor); __Pyx_INCREF(__pyx_n_s_Poly_isClockwise); __Pyx_GIVEREF(__pyx_n_s_Poly_isClockwise); PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_s_Poly_isClockwise); __Pyx_INCREF(__pyx_n_s_Poly_Order); __Pyx_GIVEREF(__pyx_n_s_Poly_Order); PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_s_Poly_Order); __Pyx_INCREF(__pyx_n_s_Poly_VolAngTor); __Pyx_GIVEREF(__pyx_n_s_Poly_VolAngTor); PyList_SET_ITEM(__pyx_t_1, 13, __pyx_n_s_Poly_VolAngTor); __Pyx_INCREF(__pyx_n_s_Sino_ImpactEnv); __Pyx_GIVEREF(__pyx_n_s_Sino_ImpactEnv); PyList_SET_ITEM(__pyx_t_1, 14, __pyx_n_s_Sino_ImpactEnv); __Pyx_INCREF(__pyx_n_s_ConvertImpact_Theta2Xi); __Pyx_GIVEREF(__pyx_n_s_ConvertImpact_Theta2Xi); PyList_SET_ITEM(__pyx_t_1, 15, __pyx_n_s_ConvertImpact_Theta2Xi); __Pyx_INCREF(__pyx_n_s_Ves_isInside); __Pyx_GIVEREF(__pyx_n_s_Ves_isInside); PyList_SET_ITEM(__pyx_t_1, 16, __pyx_n_s_Ves_isInside); __Pyx_INCREF(__pyx_n_s_Ves_mesh_dlfromL_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_mesh_dlfromL_cython); PyList_SET_ITEM(__pyx_t_1, 17, __pyx_n_s_Ves_mesh_dlfromL_cython); __Pyx_INCREF(__pyx_n_s_Ves_meshCross_FromD); __Pyx_GIVEREF(__pyx_n_s_Ves_meshCross_FromD); PyList_SET_ITEM(__pyx_t_1, 18, __pyx_n_s_Ves_meshCross_FromD); __Pyx_INCREF(__pyx_n_s_Ves_meshCross_FromInd); __Pyx_GIVEREF(__pyx_n_s_Ves_meshCross_FromInd); PyList_SET_ITEM(__pyx_t_1, 19, __pyx_n_s_Ves_meshCross_FromInd); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_Cross); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_Cross); PyList_SET_ITEM(__pyx_t_1, 20, __pyx_n_s_Ves_Smesh_Cross); __Pyx_INCREF(__pyx_n_s_Ves_Vmesh_Tor_SubFromD_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Vmesh_Tor_SubFromD_cython); PyList_SET_ITEM(__pyx_t_1, 21, __pyx_n_s_Ves_Vmesh_Tor_SubFromD_cython); __Pyx_INCREF(__pyx_n_s_Ves_Vmesh_Tor_SubFromInd_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Vmesh_Tor_SubFromInd_cython); PyList_SET_ITEM(__pyx_t_1, 22, __pyx_n_s_Ves_Vmesh_Tor_SubFromInd_cython); __Pyx_INCREF(__pyx_n_s_Ves_Vmesh_Lin_SubFromD_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Vmesh_Lin_SubFromD_cython); PyList_SET_ITEM(__pyx_t_1, 23, __pyx_n_s_Ves_Vmesh_Lin_SubFromD_cython); __Pyx_INCREF(__pyx_n_s_Ves_Vmesh_Lin_SubFromInd_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Vmesh_Lin_SubFromInd_cython); PyList_SET_ITEM(__pyx_t_1, 24, __pyx_n_s_Ves_Vmesh_Lin_SubFromInd_cython); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_Tor_SubFromD_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_Tor_SubFromD_cython); PyList_SET_ITEM(__pyx_t_1, 25, __pyx_n_s_Ves_Smesh_Tor_SubFromD_cython); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_Tor_SubFromInd_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_Tor_SubFromInd_cython); PyList_SET_ITEM(__pyx_t_1, 26, __pyx_n_s_Ves_Smesh_Tor_SubFromInd_cython); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_TorStruct_SubFromD_cy); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_TorStruct_SubFromD_cy); PyList_SET_ITEM(__pyx_t_1, 27, __pyx_n_s_Ves_Smesh_TorStruct_SubFromD_cy); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_TorStruct_SubFromInd); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_TorStruct_SubFromInd); PyList_SET_ITEM(__pyx_t_1, 28, __pyx_n_s_Ves_Smesh_TorStruct_SubFromInd); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_Lin_SubFromD_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_Lin_SubFromD_cython); PyList_SET_ITEM(__pyx_t_1, 29, __pyx_n_s_Ves_Smesh_Lin_SubFromD_cython); __Pyx_INCREF(__pyx_n_s_Ves_Smesh_Lin_SubFromInd_cython); __Pyx_GIVEREF(__pyx_n_s_Ves_Smesh_Lin_SubFromInd_cython); PyList_SET_ITEM(__pyx_t_1, 30, __pyx_n_s_Ves_Smesh_Lin_SubFromInd_cython); __Pyx_INCREF(__pyx_n_s_LOS_Calc_PInOut_VesStruct); __Pyx_GIVEREF(__pyx_n_s_LOS_Calc_PInOut_VesStruct); PyList_SET_ITEM(__pyx_t_1, 31, __pyx_n_s_LOS_Calc_PInOut_VesStruct); __Pyx_INCREF(__pyx_n_s_SLOW_LOS_Calc_PInOut_VesStruct); __Pyx_GIVEREF(__pyx_n_s_SLOW_LOS_Calc_PInOut_VesStruct); PyList_SET_ITEM(__pyx_t_1, 32, __pyx_n_s_SLOW_LOS_Calc_PInOut_VesStruct); __Pyx_INCREF(__pyx_n_s_LOS_isVis_PtFromPts_VesStruct); __Pyx_GIVEREF(__pyx_n_s_LOS_isVis_PtFromPts_VesStruct); PyList_SET_ITEM(__pyx_t_1, 33, __pyx_n_s_LOS_isVis_PtFromPts_VesStruct); __Pyx_INCREF(__pyx_n_s_check_ff); __Pyx_GIVEREF(__pyx_n_s_check_ff); PyList_SET_ITEM(__pyx_t_1, 34, __pyx_n_s_check_ff); __Pyx_INCREF(__pyx_n_s_LOS_get_sample); __Pyx_GIVEREF(__pyx_n_s_LOS_get_sample); PyList_SET_ITEM(__pyx_t_1, 35, __pyx_n_s_LOS_get_sample); __Pyx_INCREF(__pyx_n_s_LOS_calc_signal); __Pyx_GIVEREF(__pyx_n_s_LOS_calc_signal); PyList_SET_ITEM(__pyx_t_1, 36, __pyx_n_s_LOS_calc_signal); __Pyx_INCREF(__pyx_n_s_LOS_sino); __Pyx_GIVEREF(__pyx_n_s_LOS_sino); PyList_SET_ITEM(__pyx_t_1, 37, __pyx_n_s_LOS_sino); __Pyx_INCREF(__pyx_n_s_integrate1d); __Pyx_GIVEREF(__pyx_n_s_integrate1d); PyList_SET_ITEM(__pyx_t_1, 38, __pyx_n_s_integrate1d); if (PyDict_SetItem(__pyx_d, __pyx_n_s_all_2, __pyx_t_1) < 0) __PYX_ERR(0, 34, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0035: "comp_dist_los_circle",
0036: "comp_dist_los_circle_vec",
0037: "comp_dist_los_vpoly",
0038: "comp_dist_los_vpoly_vec",
0039: "is_close_los_vpoly_vec",
0040: "is_close_los_circle",
0041: "is_close_los_circle_vec",
0042: "which_los_closer_vpoly_vec",
0043: "which_vpoly_closer_los_vec",
0044: "LOS_sino_findRootkPMin_Tor",
0045: 'Poly_isClockwise', 'Poly_Order', 'Poly_VolAngTor',
0046: 'Sino_ImpactEnv', 'ConvertImpact_Theta2Xi',
0047: '_Ves_isInside',
0048: '_Ves_mesh_dlfromL_cython',
0049: '_Ves_meshCross_FromD', '_Ves_meshCross_FromInd', '_Ves_Smesh_Cross',
0050: '_Ves_Vmesh_Tor_SubFromD_cython', '_Ves_Vmesh_Tor_SubFromInd_cython',
0051: '_Ves_Vmesh_Lin_SubFromD_cython', '_Ves_Vmesh_Lin_SubFromInd_cython',
0052: '_Ves_Smesh_Tor_SubFromD_cython', '_Ves_Smesh_Tor_SubFromInd_cython',
0053: '_Ves_Smesh_TorStruct_SubFromD_cython',
0054: '_Ves_Smesh_TorStruct_SubFromInd_cython',
0055: '_Ves_Smesh_Lin_SubFromD_cython',
0056: '_Ves_Smesh_Lin_SubFromInd_cython',
0057: 'LOS_Calc_PInOut_VesStruct',
0058: 'SLOW_LOS_Calc_PInOut_VesStruct',
0059: 'LOS_isVis_PtFromPts_VesStruct',
0060: 'check_ff', 'LOS_get_sample', 'LOS_calc_signal',
0061: 'LOS_sino','integrate1d']
0062:
0063:
0064: ########################################################
0065: ########################################################
0066: # Coordinates handling
0067: ########################################################
0068:
+0069: def CoordShift(Pts, In='(X,Y,Z)', Out='(R,Z)', CrossRef=None):
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_1CoordShift(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_CoordShift[] = " Check the shape of an array of points coordinates and/or converts from\n 2D to 3D, 3D to 2D, cylindrical to cartesian...\n (CrossRef is an angle (Tor) or a distance (X for Lin))\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_1CoordShift = {"CoordShift", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_1CoordShift, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_CoordShift};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_1CoordShift(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_Pts = 0;
PyObject *__pyx_v_In = 0;
PyObject *__pyx_v_Out = 0;
PyObject *__pyx_v_CrossRef = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("CoordShift (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Pts,&__pyx_n_s_In,&__pyx_n_s_Out,&__pyx_n_s_CrossRef,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)__pyx_kp_s_X_Y_Z);
values[2] = ((PyObject *)__pyx_kp_s_R_Z);
values[3] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Pts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_In);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_CrossRef);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "CoordShift") < 0)) __PYX_ERR(0, 69, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_Pts = values[0];
__pyx_v_In = values[1];
__pyx_v_Out = values[2];
__pyx_v_CrossRef = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("CoordShift", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 69, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.CoordShift", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_CoordShift(__pyx_self, __pyx_v_Pts, __pyx_v_In, __pyx_v_Out, __pyx_v_CrossRef);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_CoordShift(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_Pts, PyObject *__pyx_v_In, PyObject *__pyx_v_Out, PyObject *__pyx_v_CrossRef) {
PyObject *__pyx_v_okTypes = NULL;
PyObject *__pyx_v_Ins = NULL;
PyObject *__pyx_v_Outs = NULL;
PyObject *__pyx_v_InT = NULL;
PyObject *__pyx_v_OutT = NULL;
PyObject *__pyx_v_ndim = NULL;
PyObject *__pyx_v_pts = NULL;
PyObject *__pyx_v_ii = NULL;
PyObject *__pyx_v_ff = NULL;
PyObject *__pyx_v_ss = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("CoordShift", 0);
__Pyx_INCREF(__pyx_v_Pts);
__Pyx_INCREF(__pyx_v_In);
__Pyx_INCREF(__pyx_v_Out);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_AddTraceback("tofu.geom._GG03.CoordShift", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_okTypes);
__Pyx_XDECREF(__pyx_v_Ins);
__Pyx_XDECREF(__pyx_v_Outs);
__Pyx_XDECREF(__pyx_v_InT);
__Pyx_XDECREF(__pyx_v_OutT);
__Pyx_XDECREF(__pyx_v_ndim);
__Pyx_XDECREF(__pyx_v_pts);
__Pyx_XDECREF(__pyx_v_ii);
__Pyx_XDECREF(__pyx_v_ff);
__Pyx_XDECREF(__pyx_v_ss);
__Pyx_XDECREF(__pyx_v_Pts);
__Pyx_XDECREF(__pyx_v_In);
__Pyx_XDECREF(__pyx_v_Out);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__158 = PyTuple_Pack(14, __pyx_n_s_Pts, __pyx_n_s_In, __pyx_n_s_Out, __pyx_n_s_CrossRef, __pyx_n_s_okTypes, __pyx_n_s_Ins, __pyx_n_s_Outs, __pyx_n_s_InT, __pyx_n_s_OutT, __pyx_n_s_ndim, __pyx_n_s_pts, __pyx_n_s_ii, __pyx_n_s_ff, __pyx_n_s_ss); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(0, 69, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__158);
__Pyx_GIVEREF(__pyx_tuple__158);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_1CoordShift, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 69, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_CoordShift, __pyx_t_1) < 0) __PYX_ERR(0, 69, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(4, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__158, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_CoordShift, 69, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(0, 69, __pyx_L1_error)
0070: """ Check the shape of an array of points coordinates and/or converts from
0071: 2D to 3D, 3D to 2D, cylindrical to cartesian...
0072: (CrossRef is an angle (Tor) or a distance (X for Lin))
0073: """
+0074: assert all([type(ff) is str and ',' in ff for ff in [In,Out]]), (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_v_In);
__Pyx_GIVEREF(__pyx_v_In);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_In);
__Pyx_INCREF(__pyx_v_Out);
__Pyx_GIVEREF(__pyx_v_Out);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_Out);
__pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
for (;;) {
if (__pyx_t_4 >= 2) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 74, __pyx_L1_error)
#else
__pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
#endif
__Pyx_XDECREF_SET(__pyx_v_ff, __pyx_t_2);
__pyx_t_2 = 0;
__pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_ff)) == ((PyObject *)(&PyString_Type)));
if (__pyx_t_5) {
} else {
__pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __pyx_t_6;
__pyx_t_6 = 0;
goto __pyx_L5_bool_binop_done;
}
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s_, __pyx_v_ff, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 74, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __pyx_t_6;
__pyx_t_6 = 0;
__pyx_L5_bool_binop_done:;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 74, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_In_and_Out_coordinate_format);
__PYX_ERR(0, 74, __pyx_L1_error)
}
}
#endif
0075: "Arg In and Out (coordinate format) must be comma-separated !")
+0076: assert type(Pts) is np.ndarray and Pts.ndim in [1,2] and \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (((PyObject *)Py_TYPE(__pyx_v_Pts)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 76, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!__pyx_t_7) {
} else {
__pyx_t_8 = __pyx_t_7;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 76, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_8 = __pyx_t_7;
__pyx_L10_bool_binop_done:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = (__pyx_t_8 != 0);
if (__pyx_t_7) {
} else {
__pyx_t_5 = __pyx_t_7;
goto __pyx_L7_bool_binop_done;
}
+0077: Pts.shape[0] in (2,3), ("Points must be a 1D or 2D np.ndarray "
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L12_bool_binop_done; } __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_t_8; __pyx_L12_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = (__pyx_t_7 != 0); __pyx_t_5 = __pyx_t_8; __pyx_L7_bool_binop_done:; if (unlikely(!__pyx_t_5)) { PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Points_must_be_a_1D_or_2D_np_nda); __PYX_ERR(0, 76, __pyx_L1_error) } } #endif
0078: "of 2 or 3 coordinates !")
+0079: okTypes = [int,float,np.int64,np.float64]
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&PyInt_Type))); __Pyx_GIVEREF(((PyObject *)(&PyInt_Type))); PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&PyInt_Type))); __Pyx_INCREF(((PyObject *)(&PyFloat_Type))); __Pyx_GIVEREF(((PyObject *)(&PyFloat_Type))); PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)(&PyFloat_Type))); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_v_okTypes = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+0080: assert CrossRef is None or type(CrossRef) in okTypes, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_8 = (__pyx_v_CrossRef == Py_None);
__pyx_t_7 = (__pyx_t_8 != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_5 = __pyx_t_7;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_7 = (__Pyx_PySequence_ContainsTF(((PyObject *)Py_TYPE(__pyx_v_CrossRef)), __pyx_v_okTypes, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 80, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_7 != 0);
__pyx_t_5 = __pyx_t_8;
__pyx_L14_bool_binop_done:;
if (unlikely(!__pyx_t_5)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_CrossRef_must_be_a_float);
__PYX_ERR(0, 80, __pyx_L1_error)
}
}
#endif
0081: "Arg CrossRef must be a float !")
0082:
0083: # Pre-format inputs
+0084: In, Out = In.lower(), Out.lower()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_In, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_Out, __pyx_n_s_lower); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_In, __pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_Out, __pyx_t_2); __pyx_t_2 = 0;
0085:
0086: # Get order
+0087: Ins = In.replace('(','').replace(')','').split(',')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_In, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__4 = PyTuple_Pack(2, __pyx_kp_s__2, __pyx_kp_s__3); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Ins = __pyx_t_2; __pyx_t_2 = 0; __pyx_tuple__6 = PyTuple_Pack(2, __pyx_kp_s__5, __pyx_kp_s__3); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 87, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6);
+0088: Outs = Out.replace('(','').replace(')','').split(',')
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Out, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_replace); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_kp_s_); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Outs = __pyx_t_2; __pyx_t_2 = 0;
0089: # TODO: @DV > it looks to me that (x, r, phi) could be a valid in/out-put
0090: # >>>>> ajouter assert pour le moment
+0091: assert all([ss in ['x','y','z','r','phi'] for ss in Ins]), "Non-valid In!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_v_Ins)) || PyTuple_CheckExact(__pyx_v_Ins)) {
__pyx_t_1 = __pyx_v_Ins; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_Ins); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 91, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_1))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_9(__pyx_t_1);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 91, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_INCREF(__pyx_v_ss);
__pyx_t_3 = __pyx_v_ss;
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_x, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_y, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_z, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_phi, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
__pyx_t_5 = __pyx_t_8;
__pyx_L18_bool_binop_done:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 91, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Non_valid_In);
__PYX_ERR(0, 91, __pyx_L1_error)
}
}
#endif
+0092: assert all([ss in ['x','y','z','r','phi'] for ss in Outs]), "Non-valid Out!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (likely(PyList_CheckExact(__pyx_v_Outs)) || PyTuple_CheckExact(__pyx_v_Outs)) {
__pyx_t_2 = __pyx_v_Outs; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_Outs); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 92, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_2))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
#else
__pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
#endif
}
} else {
__pyx_t_3 = __pyx_t_9(__pyx_t_2);
if (unlikely(!__pyx_t_3)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 92, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_3);
}
__Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_INCREF(__pyx_v_ss);
__pyx_t_3 = __pyx_v_ss;
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_x, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L25_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_y, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L25_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_z, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L25_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
if (!__pyx_t_8) {
} else {
__pyx_t_5 = __pyx_t_8;
goto __pyx_L25_bool_binop_done;
}
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_phi, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
__pyx_t_5 = __pyx_t_8;
__pyx_L25_bool_binop_done:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 92, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Non_valid_Out);
__PYX_ERR(0, 92, __pyx_L1_error)
}
}
#endif
+0093: InT = 'cyl' if any([ss in Ins for ss in ['r','phi']]) else 'cart'
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __pyx_tuple__7; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 93, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 93, __pyx_L1_error) __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { __Pyx_INCREF(__pyx_n_s_cyl); __pyx_t_2 = __pyx_n_s_cyl; } else { __Pyx_INCREF(__pyx_n_s_cart); __pyx_t_2 = __pyx_n_s_cart; } __pyx_v_InT = __pyx_t_2; __pyx_t_2 = 0; /* … */ __pyx_tuple__7 = PyTuple_Pack(2, __pyx_n_s_r, __pyx_n_s_phi); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 93, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7);
+0094: OutT = 'cyl' if any([ss in Outs for ss in ['r','phi']]) else 'cart'
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __pyx_tuple__7; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; for (;;) { if (__pyx_t_4 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 94, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Outs, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 94, __pyx_L1_error) __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_5) { __Pyx_INCREF(__pyx_n_s_cyl); __pyx_t_2 = __pyx_n_s_cyl; } else { __Pyx_INCREF(__pyx_n_s_cart); __pyx_t_2 = __pyx_n_s_cart; } __pyx_v_OutT = __pyx_t_2; __pyx_t_2 = 0;
0095:
+0096: ndim = Pts.ndim
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_ndim = __pyx_t_2; __pyx_t_2 = 0;
+0097: if ndim==1:
__pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_ndim, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 97, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { /* … */ }
+0098: Pts = np.copy(Pts.reshape((Pts.shape[0],1)))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_reshape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_int_1); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, __pyx_t_2); __pyx_t_2 = 0;
0099:
0100: # Compute
+0101: if InT==OutT:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_InT, __pyx_v_OutT, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L35; }
+0102: assert all([ss in Ins for ss in Outs])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (likely(PyList_CheckExact(__pyx_v_Outs)) || PyTuple_CheckExact(__pyx_v_Outs)) {
__pyx_t_3 = __pyx_v_Outs; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
__pyx_t_9 = NULL;
} else {
__pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_Outs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 102, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_9)) {
if (likely(PyList_CheckExact(__pyx_t_3))) {
if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
} else {
if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
}
} else {
__pyx_t_1 = __pyx_t_9(__pyx_t_3);
if (unlikely(!__pyx_t_1)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 102, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_1);
}
__Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
__pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 102, __pyx_L1_error)
}
}
#endif
+0103: pts = []
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_pts = __pyx_t_3; __pyx_t_3 = 0;
+0104: for ii in Outs:
if (likely(PyList_CheckExact(__pyx_v_Outs)) || PyTuple_CheckExact(__pyx_v_Outs)) { __pyx_t_3 = __pyx_v_Outs; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_Outs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 104, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 104, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 104, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 104, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_ii, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0105: if ii=='phi':
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_phi, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 105, __pyx_L1_error) if (__pyx_t_5) { /* … */ goto __pyx_L40; }
0106: # TODO : @DV > why ? no need of transform
0107: # >>> ts les angles entre [-pi, pi] -> ajouter un if ?
+0108: pts.append(np.arctan2(np.sin(Pts[Ins.index(ii),:]),
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_arctan2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_sin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_10 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_13, __pyx_v_ii) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_ii); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_slice__8); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_2); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_slice__8 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__8)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8);
+0109: np.cos(Pts[Ins.index(ii),:])))
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_cos); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_10 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_v_ii) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_v_ii); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_10); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_slice__8); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_11 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_13, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_10); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_1, __pyx_t_11}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_1, __pyx_t_11}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_15, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_15, __pyx_t_11); __pyx_t_1 = 0; __pyx_t_11 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
0110: else:
+0111: pts.append(Pts[Ins.index(ii),:])
/*else*/ {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_10 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_10)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_10, __pyx_v_ii) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_ii);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
__Pyx_INCREF(__pyx_slice__8);
__Pyx_GIVEREF(__pyx_slice__8);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_slice__8);
__pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_2); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 111, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L40:;
+0112: elif InT=='cart':
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_InT, __pyx_n_s_cart, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 112, __pyx_L1_error) if (__pyx_t_5) { /* … */ goto __pyx_L35; }
+0113: pts = []
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_pts = __pyx_t_3; __pyx_t_3 = 0;
+0114: for ii in Outs:
if (likely(PyList_CheckExact(__pyx_v_Outs)) || PyTuple_CheckExact(__pyx_v_Outs)) { __pyx_t_3 = __pyx_v_Outs; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_Outs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 114, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 114, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 114, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 114, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_ii, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0115: if ii=='r':
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 115, __pyx_L1_error) if (__pyx_t_5) { /* … */ goto __pyx_L43; }
+0116: assert all([ss in Ins for ss in ['x','y']])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __pyx_tuple__9; __Pyx_INCREF(__pyx_t_6); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= 2) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_10); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 116, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_10);
__pyx_t_10 = 0;
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 116, __pyx_L1_error)
__pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 116, __pyx_L1_error)
}
}
#endif
/* … */
__pyx_tuple__9 = PyTuple_Pack(2, __pyx_n_s_x, __pyx_n_s_y); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 116, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__9);
__Pyx_GIVEREF(__pyx_tuple__9);
+0117: pts.append(np.hypot(Pts[Ins.index('x'),:],
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_hypot); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_1, __pyx_n_s_x) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_n_s_x); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_slice__8); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_6); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0118: Pts[Ins.index('y'),:]))
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_11 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_n_s_y) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_s_y); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_11); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__8); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_t_11}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_2, __pyx_t_11}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_12 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_15, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_15, __pyx_t_11); __pyx_t_2 = 0; __pyx_t_11 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_12, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0119: elif ii=='z':
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_z, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 119, __pyx_L1_error) if (__pyx_t_5) { /* … */ goto __pyx_L43; }
+0120: assert 'z' in Ins
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_z, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 120, __pyx_L1_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 120, __pyx_L1_error)
}
}
#endif
+0121: pts.append(Pts[Ins.index('z'),:])
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_n_s_z) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_n_s_z); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_slice__8); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_6); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0122: elif ii=='phi':
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_phi, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 122, __pyx_L1_error) if (__pyx_t_5) { /* … */ } __pyx_L43:;
+0123: if all([ss in Ins for ss in ['x','y']]):
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __pyx_tuple__9; __Pyx_INCREF(__pyx_t_10); __pyx_t_17 = 0; for (;;) { if (__pyx_t_17 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_12); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 123, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 123, __pyx_L1_error) __pyx_t_12 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 123, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L46; }
+0124: pts.append(np.arctan2(Pts[Ins.index('y'),:],
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_arctan2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_2, __pyx_n_s_y) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_n_s_y); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_slice__8); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_10); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0125: Pts[Ins.index('x'),:]))
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_11 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_n_s_x) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_x); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_slice__8); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_6, __pyx_t_11}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) { PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_6, __pyx_t_11}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_15, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_15, __pyx_t_11); __pyx_t_6 = 0; __pyx_t_11 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0126: elif CrossRef is not None:
__pyx_t_5 = (__pyx_v_CrossRef != Py_None);
__pyx_t_8 = (__pyx_t_5 != 0);
if (likely(__pyx_t_8)) {
/* … */
goto __pyx_L46;
}
+0127: pts.append( CrossRef*np.ones((Pts.shape[1],)) )
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_12, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_11, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_v_CrossRef, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_1); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
0128: else:
+0129: raise Exception("There is no phi value available !")
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_Raise(__pyx_t_1, 0, 0, 0);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_ERR(0, 129, __pyx_L1_error)
}
__pyx_L46:;
/* … */
__pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_There_is_no_phi_value_available); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 129, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__10);
__Pyx_GIVEREF(__pyx_tuple__10);
0130: # TODO: @VZ > else... ? if Outs = (x, r, phi) ?
0131: else:
+0132: pts = []
/*else*/ {
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_v_pts = __pyx_t_3;
__pyx_t_3 = 0;
+0133: for ii in Outs:
if (likely(PyList_CheckExact(__pyx_v_Outs)) || PyTuple_CheckExact(__pyx_v_Outs)) { __pyx_t_3 = __pyx_v_Outs; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; __pyx_t_9 = NULL; } else { __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_Outs); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 133, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_9)) { if (likely(PyList_CheckExact(__pyx_t_3))) { if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 133, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 133, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_9(__pyx_t_3); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 133, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_ii, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L35:;
+0134: if ii=='x':
__pyx_t_8 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_x, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 134, __pyx_L1_error) if (__pyx_t_8) { /* … */ goto __pyx_L51; }
+0135: if all([ss in Ins for ss in ['r','phi']]) :
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __pyx_tuple__7; __Pyx_INCREF(__pyx_t_10); __pyx_t_17 = 0; for (;;) { if (__pyx_t_17 >= 2) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_12); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 135, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 135, __pyx_L1_error) __pyx_t_12 = __Pyx_PyBool_FromLong(__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 135, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_8) { /* … */ goto __pyx_L52; }
0136: # TODO : @VZ : and CrossRef is None ?
0137: # >>> ajouter un warning si crossref a ete defini
+0138: pts.append(Pts[Ins.index('r'),:] *
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_10 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_n_s_r) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_n_s_r); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_slice__8); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_11 = PyNumber_Multiply(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_11); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0139: np.cos(Pts[Ins.index('phi'),:]))
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_cos); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_n_s_phi) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_s_phi); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_12); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_slice__8); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_6, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_12); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0140: elif CrossRef is not None:
__pyx_t_8 = (__pyx_v_CrossRef != Py_None);
__pyx_t_5 = (__pyx_t_8 != 0);
if (likely(__pyx_t_5)) {
/* … */
goto __pyx_L52;
}
+0141: pts.append( CrossRef*np.ones((Pts.shape[1],)) )
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_11 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Multiply(__pyx_v_CrossRef, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_10); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
0142: else:
+0143: raise Exception("There is no x value available !")
/*else*/ {
__pyx_t_10 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 143, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_Raise(__pyx_t_10, 0, 0, 0);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__PYX_ERR(0, 143, __pyx_L1_error)
}
__pyx_L52:;
/* … */
__pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_There_is_no_x_value_available); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 143, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__11);
__Pyx_GIVEREF(__pyx_tuple__11);
+0144: elif ii=='y':
/* "tofu/geom/_GG03.pyx":144
* else:
* raise Exception("There is no x value available !")
* elif ii=='y': # <<<<<<<<<<<<<<
* assert all([ss in Ins for ss in ['r','phi']])
* pts.append(Pts[Ins.index('r'),:] *
*/
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_y, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 144, __pyx_L1_error)
if (__pyx_t_5) {
/* "tofu/geom/_GG03.pyx":144
* else:
* raise Exception("There is no x value available !")
* elif ii=='y': # <<<<<<<<<<<<<<
* assert all([ss in Ins for ss in ['r','phi']])
* pts.append(Pts[Ins.index('r'),:] *
*/
goto __pyx_L51;
}
+0145: assert all([ss in Ins for ss in ['r','phi']])
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = __pyx_tuple__7; __Pyx_INCREF(__pyx_t_11); __pyx_t_17 = 0;
for (;;) {
if (__pyx_t_17 >= 2) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 145, __pyx_L1_error)
#else
__pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
#endif
__Pyx_XDECREF_SET(__pyx_v_ss, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_ss, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 145, __pyx_L1_error)
__pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_10, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 145, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 145, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 145, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 145, __pyx_L1_error)
}
}
#endif
+0146: pts.append(Pts[Ins.index('r'),:] *
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_11 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_1, __pyx_n_s_r) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_n_s_r); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_slice__8); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* … */ __pyx_t_12 = PyNumber_Multiply(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_12); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 146, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0147: np.sin(Pts[Ins.index('phi'),:]))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sin); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_n_s_phi) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_n_s_phi); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_slice__8); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0148: elif ii=='z':
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_ii, __pyx_n_s_z, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 148, __pyx_L1_error) if (__pyx_t_5) { /* … */ } __pyx_L51:;
+0149: assert 'z' in Ins
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_z, __pyx_v_Ins, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 149, __pyx_L1_error)
if (unlikely(!(__pyx_t_5 != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 149, __pyx_L1_error)
}
}
#endif
+0150: pts.append(Pts[Ins.index('z'),:])
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ins, __pyx_n_s_index); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_12 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_n_s_z) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_n_s_z); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_12); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_slice__8); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_Pts, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_16 = __Pyx_PyObject_Append(__pyx_v_pts, __pyx_t_12); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
0151: # TODO : else....?
0152:
0153: # Format output
+0154: pts = np.vstack(pts)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_vstack); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_12, __pyx_v_pts) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_pts); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_pts, __pyx_t_3); __pyx_t_3 = 0;
+0155: if ndim==1:
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_ndim, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_5) { /* … */ }
+0156: pts = pts.flatten()
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_pts, __pyx_n_s_flatten); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_10); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_pts, __pyx_t_3); __pyx_t_3 = 0;
+0157: return pts
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_pts); __pyx_r = __pyx_v_pts; goto __pyx_L0;
0158:
0159:
0160: """
0161: ########################################################
0162: ########################################################
0163: ########################################################
0164: # General Geometry
0165: ########################################################
0166: ########################################################
0167: ########################################################
0168: """
0169:
0170: ########################################################
0171: ########################################################
0172: # Polygons
0173: ########################################################
0174:
0175:
0176: @cython.cdivision(True)
0177: @cython.wraparound(False)
0178: @cython.boundscheck(False)
+0179: def Poly_isClockwise(np.ndarray[double,ndim=2] Poly):
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_3Poly_isClockwise(PyObject *__pyx_self, PyObject *__pyx_v_Poly); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_2Poly_isClockwise[] = " Assuming 2D closed Poly !\n TODO @LM :\n http://www.faqs.org/faqs/graphics/algorithms-faq/\n A slightly faster method is based on the observation that it isn't\n necessary to compute the area. Find the lowest vertex (or, if\n there is more than one vertex with the same lowest coordinate,\n the rightmost of those vertices) and then take the cross product\n of the edges fore and aft of it. Both methods are O(n) for n vertices,\n but it does seem a waste to add up the total area when a single cross\n product (of just the right edges) suffices. Code for this is\n available at ftp://cs.smith.edu/pub/code/polyorient.C (2K).\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_3Poly_isClockwise = {"Poly_isClockwise", (PyCFunction)__pyx_pw_4tofu_4geom_5_GG03_3Poly_isClockwise, METH_O, __pyx_doc_4tofu_4geom_5_GG03_2Poly_isClockwise};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_3Poly_isClockwise(PyObject *__pyx_self, PyObject *__pyx_v_Poly) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Poly_isClockwise (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Poly), __pyx_ptype_5numpy_ndarray, 1, "Poly", 0))) __PYX_ERR(0, 179, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_2Poly_isClockwise(__pyx_self, ((PyArrayObject *)__pyx_v_Poly));
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_2Poly_isClockwise(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_Poly) {
int __pyx_v_ii;
int __pyx_v_NP;
double __pyx_v_Sum;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Poly;
__Pyx_Buffer __pyx_pybuffer_Poly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Poly_isClockwise", 0);
__pyx_pybuffer_Poly.pybuffer.buf = NULL;
__pyx_pybuffer_Poly.refcount = 0;
__pyx_pybuffernd_Poly.data = NULL;
__pyx_pybuffernd_Poly.rcbuffer = &__pyx_pybuffer_Poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_Poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 179, __pyx_L1_error)
}
__pyx_pybuffernd_Poly.diminfo[0].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Poly.diminfo[0].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Poly.diminfo[1].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Poly.diminfo[1].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[1];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_12);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Poly_isClockwise", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__160 = PyTuple_Pack(4, __pyx_n_s_Poly, __pyx_n_s_ii, __pyx_n_s_NP, __pyx_n_s_Sum); if (unlikely(!__pyx_tuple__160)) __PYX_ERR(0, 179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__160);
__Pyx_GIVEREF(__pyx_tuple__160);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_3Poly_isClockwise, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Poly_isClockwise, __pyx_t_1) < 0) __PYX_ERR(0, 179, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__160, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Poly_isClockwise, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(0, 179, __pyx_L1_error)
0180: """ Assuming 2D closed Poly !
0181: TODO @LM :
0182: http://www.faqs.org/faqs/graphics/algorithms-faq/
0183: A slightly faster method is based on the observation that it isn't
0184: necessary to compute the area. Find the lowest vertex (or, if
0185: there is more than one vertex with the same lowest coordinate,
0186: the rightmost of those vertices) and then take the cross product
0187: of the edges fore and aft of it. Both methods are O(n) for n vertices,
0188: but it does seem a waste to add up the total area when a single cross
0189: product (of just the right edges) suffices. Code for this is
0190: available at ftp://cs.smith.edu/pub/code/polyorient.C (2K).
0191: """
+0192: cdef int ii, NP=Poly.shape[1]
__pyx_v_NP = (__pyx_v_Poly->dimensions[1]);
+0193: cdef double Sum=0.
__pyx_v_Sum = 0.;
+0194: for ii in range(0,NP-1):
__pyx_t_1 = (__pyx_v_NP - 1);
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
0195: # Slightly faster solution: (to check) and try above solution ?
0196: # TODO : @LM > Test on of this sols:
0197: # Sol 1 (unit test time = 2.7)
0198: # Sum += (Poly[0,ii+1]-Poly[0,ii])*(Poly[1,ii+1]+Poly[1,ii])
0199: # Sol 2 (unit test time = 1.9)
0200: # p1 = [0, 0]
0201: # p2 = [1, 0]
0202: # p3 = [.5, .5]
0203: # p4 = [1, 1]
0204: # p5 = [0,1]
0205: # p6 = [0,0]
0206: # points = [p1, p2, p3, p4, p5, p6]
0207: # idmin = points.index(min(points)) #0.99
0208: # idm1 = idmin - 1
0209: # idp1 = idmin + 1 % 7
0210: # res = points[idm1][0] * (points[idmin][1] - points[idp1][1]) + \
0211: # points[idmin][0] * (points[idp1][1] - points[idm1][1]) + \
0212: # points[idp1][0] * (points[idm1][1] - points[idmin][1])
0213: # Sol DV (unit test time = 2.9)
+0214: Sum += Poly[0,ii]*Poly[1,ii+1]-Poly[0,ii+1]*Poly[1,ii]
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_ii;
__pyx_t_6 = 1;
__pyx_t_7 = (__pyx_v_ii + 1);
__pyx_t_8 = 0;
__pyx_t_9 = (__pyx_v_ii + 1);
__pyx_t_10 = 1;
__pyx_t_11 = __pyx_v_ii;
__pyx_v_Sum = (__pyx_v_Sum + (((*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Poly.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_Poly.diminfo[0].strides, __pyx_t_5, __pyx_pybuffernd_Poly.diminfo[1].strides)) * (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Poly.rcbuffer->pybuffer.buf, __pyx_t_6, __pyx_pybuffernd_Poly.diminfo[0].strides, __pyx_t_7, __pyx_pybuffernd_Poly.diminfo[1].strides))) - ((*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Poly.rcbuffer->pybuffer.buf, __pyx_t_8, __pyx_pybuffernd_Poly.diminfo[0].strides, __pyx_t_9, __pyx_pybuffernd_Poly.diminfo[1].strides)) * (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Poly.rcbuffer->pybuffer.buf, __pyx_t_10, __pyx_pybuffernd_Poly.diminfo[0].strides, __pyx_t_11, __pyx_pybuffernd_Poly.diminfo[1].strides)))));
}
+0215: return Sum < 0.
__Pyx_XDECREF(__pyx_r); __pyx_t_12 = __Pyx_PyBool_FromLong((__pyx_v_Sum < 0.)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 215, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_r = __pyx_t_12; __pyx_t_12 = 0; goto __pyx_L0;
0216:
0217:
+0218: def Poly_Order(np.ndarray[double,ndim=2] Poly, str order='C', Clock=False,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_5Poly_Order(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_4Poly_Order[] = "\n Return a polygon Poly as a np.ndarray formatted according to parameters\n\n Parameters\n ----------\n Poly np.ndarray or list Input polygon under from of (cc,N) or\n or tuple (N,cc) np.ndarray (where cc = 2 or 3, the\n number of coordinates and N points), or\n list or tuple of vertices\n order str Flag indicating whether the output\n np.ndarray shall be C-contiguous ('C') or\n Fortran-contiguous ('F')\n Clock bool For 2-dimensional arrays only, flag indi-\n cating whether the output array shall\n represent a clockwise polygon (True) or\n anti-clockwise (False), or should be left\n unchanged (None)\n close bool For 2-dimensional arrays only, flag indi-\n cating whether the output array shall be\n closed (True, ie: last point==first point)\n or not closed (False)\n layout str Flag indicating whether the output\n np.ndarray shall be of shape '(cc,N)'\n or '(N,cc)'\n Test bool Flag indicating whether the inputs should\n be tested for conformity, default: True\n\n Returns\n -------\n poly np.ndarray Output formatted polygon\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_5Poly_Order = {"Poly_Order", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_5Poly_Order, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_4Poly_Order};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_5Poly_Order(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyArrayObject *__pyx_v_Poly = 0;
PyObject *__pyx_v_order = 0;
PyObject *__pyx_v_Clock = 0;
PyObject *__pyx_v_close = 0;
PyObject *__pyx_v_layout = 0;
PyObject *__pyx_v_layout_in = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Poly_Order (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Poly,&__pyx_n_s_order,&__pyx_n_s_Clock,&__pyx_n_s_close,&__pyx_n_s_layout,&__pyx_n_s_layout_in,&__pyx_n_s_Test,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
values[1] = ((PyObject*)__pyx_n_s_C);
values[2] = ((PyObject *)Py_False);
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_4Poly_Order(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_Poly, PyObject *__pyx_v_order, PyObject *__pyx_v_Clock, PyObject *__pyx_v_close, PyObject *__pyx_v_layout, PyObject *__pyx_v_layout_in, PyObject *__pyx_v_Test) {
PyObject *__pyx_v_poly = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Poly;
__Pyx_Buffer __pyx_pybuffer_Poly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Poly_Order", 0);
__pyx_pybuffer_Poly.pybuffer.buf = NULL;
__pyx_pybuffer_Poly.refcount = 0;
__pyx_pybuffernd_Poly.data = NULL;
__pyx_pybuffernd_Poly.rcbuffer = &__pyx_pybuffer_Poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_Poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 218, __pyx_L1_error)
}
__pyx_pybuffernd_Poly.diminfo[0].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Poly.diminfo[0].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Poly.diminfo[1].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Poly.diminfo[1].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[1];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_7);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Poly_Order", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_poly);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__162 = PyTuple_Pack(8, __pyx_n_s_Poly, __pyx_n_s_order, __pyx_n_s_Clock, __pyx_n_s_close, __pyx_n_s_layout, __pyx_n_s_layout_in, __pyx_n_s_Test, __pyx_n_s_poly); if (unlikely(!__pyx_tuple__162)) __PYX_ERR(0, 218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__162);
__Pyx_GIVEREF(__pyx_tuple__162);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_5Poly_Order, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Poly_Order, __pyx_t_1) < 0) __PYX_ERR(0, 218, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__163 = (PyObject*)__Pyx_PyCode_New(7, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__162, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Poly_Order, 218, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__163)) __PYX_ERR(0, 218, __pyx_L1_error)
+0219: close=True, str layout='(cc,N)', str layout_in=None, Test=True):
values[3] = ((PyObject *)Py_True);
values[4] = ((PyObject*)__pyx_kp_s_cc_N);
values[5] = ((PyObject*)Py_None);
values[6] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Poly)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_order);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Clock);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_close);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_layout);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_layout_in);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Poly_Order") < 0)) __PYX_ERR(0, 218, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_Poly = ((PyArrayObject *)values[0]);
__pyx_v_order = ((PyObject*)values[1]);
__pyx_v_Clock = values[2];
__pyx_v_close = values[3];
__pyx_v_layout = ((PyObject*)values[4]);
__pyx_v_layout_in = ((PyObject*)values[5]);
__pyx_v_Test = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("Poly_Order", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 218, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.Poly_Order", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Poly), __pyx_ptype_5numpy_ndarray, 1, "Poly", 0))) __PYX_ERR(0, 218, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_order), (&PyString_Type), 1, "order", 1))) __PYX_ERR(0, 218, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_layout), (&PyString_Type), 1, "layout", 1))) __PYX_ERR(0, 219, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_layout_in), (&PyString_Type), 1, "layout_in", 1))) __PYX_ERR(0, 219, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_4Poly_Order(__pyx_self, __pyx_v_Poly, __pyx_v_order, __pyx_v_Clock, __pyx_v_close, __pyx_v_layout, __pyx_v_layout_in, __pyx_v_Test);
0220: """
0221: Return a polygon Poly as a np.ndarray formatted according to parameters
0222:
0223: Parameters
0224: ----------
0225: Poly np.ndarray or list Input polygon under from of (cc,N) or
0226: or tuple (N,cc) np.ndarray (where cc = 2 or 3, the
0227: number of coordinates and N points), or
0228: list or tuple of vertices
0229: order str Flag indicating whether the output
0230: np.ndarray shall be C-contiguous ('C') or
0231: Fortran-contiguous ('F')
0232: Clock bool For 2-dimensional arrays only, flag indi-
0233: cating whether the output array shall
0234: represent a clockwise polygon (True) or
0235: anti-clockwise (False), or should be left
0236: unchanged (None)
0237: close bool For 2-dimensional arrays only, flag indi-
0238: cating whether the output array shall be
0239: closed (True, ie: last point==first point)
0240: or not closed (False)
0241: layout str Flag indicating whether the output
0242: np.ndarray shall be of shape '(cc,N)'
0243: or '(N,cc)'
0244: Test bool Flag indicating whether the inputs should
0245: be tested for conformity, default: True
0246:
0247: Returns
0248: -------
0249: poly np.ndarray Output formatted polygon
0250: """
+0251: if Test:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 251, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0252: assert (2 in np.shape(Poly) or 3 in np.shape(Poly)), \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_Poly));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_int_2, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_6 = (__pyx_t_5 != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_1 = __pyx_t_6;
goto __pyx_L4_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_Poly));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_6 = (__Pyx_PySequence_ContainsTF(__pyx_int_3, __pyx_t_2, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 252, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = (__pyx_t_6 != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L4_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Poly_must_contain_the_2D_or);
__PYX_ERR(0, 252, __pyx_L1_error)
}
}
#endif
0253: "Arg Poly must contain the 2D or 3D coordinates of at least 3 points!"
+0254: assert max(np.shape(Poly))>=3, ("Arg Poly must contain the 2D or 3D",
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_Poly));
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_int_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_1)) {
/* … */
__pyx_tuple__12 = PyTuple_Pack(2, __pyx_kp_s_Arg_Poly_must_contain_the_2D_or_2, __pyx_kp_s_coordinates_of_at_least_3_point); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__12);
__Pyx_GIVEREF(__pyx_tuple__12);
PyErr_SetObject(PyExc_AssertionError, __pyx_tuple__13);
__PYX_ERR(0, 254, __pyx_L1_error)
}
}
#endif
__pyx_tuple__13 = PyTuple_Pack(1, __pyx_tuple__12); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 254, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__13);
__Pyx_GIVEREF(__pyx_tuple__13);
0255: " coordinates of at least 3 points!")
+0256: assert order.lower() in ['c','f'], "Arg order must be in ['c','f']!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_order); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 256, __pyx_L1_error)
if (!__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_f, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 256, __pyx_L1_error)
__pyx_t_1 = __pyx_t_5;
__pyx_L6_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_order_must_be_in_c_f);
__PYX_ERR(0, 256, __pyx_L1_error)
}
}
#endif
+0257: assert type(Clock) is bool, "Arg Clock must be a bool!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_Clock)) == ((PyObject *)__pyx_ptype_7cpython_4bool_bool));
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Clock_must_be_a_bool);
__PYX_ERR(0, 257, __pyx_L1_error)
}
}
#endif
+0258: assert type(close) is bool, "Arg close must be a bool!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_close)) == ((PyObject *)__pyx_ptype_7cpython_4bool_bool));
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_close_must_be_a_bool);
__PYX_ERR(0, 258, __pyx_L1_error)
}
}
#endif
+0259: assert layout.lower() in ['(cc,n)','(n,cc)'], \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_layout); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 259, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s_cc_n, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 259, __pyx_L1_error)
if (!__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s_n_cc, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 259, __pyx_L1_error)
__pyx_t_1 = __pyx_t_5;
__pyx_L8_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_layout_must_be_in_cc_n_n_cc);
__PYX_ERR(0, 259, __pyx_L1_error)
}
}
#endif
0260: "Arg layout must be in ['(cc,n)','(n,cc)']!"
+0261: assert layout_in is None or layout_in.lower() in ['(cc,n)','(n,cc)'],\
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_layout_in == ((PyObject*)Py_None));
__pyx_t_6 = (__pyx_t_5 != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_1 = __pyx_t_6;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_layout_in); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s_cc_n, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 261, __pyx_L1_error)
if (!__pyx_t_5) {
} else {
__pyx_t_6 = __pyx_t_5;
goto __pyx_L12_bool_binop_done;
}
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s_n_cc, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 261, __pyx_L1_error)
__pyx_t_6 = __pyx_t_5;
__pyx_L12_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = (__pyx_t_6 != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L10_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_layout_in_must_be_None_or_in);
__PYX_ERR(0, 261, __pyx_L1_error)
}
}
#endif
0262: "Arg layout_in must be None or in ['(cc,n)','(n,cc)']!"
0263:
+0264: if np.shape(Poly)==(3,3):
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_Poly)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_tuple__14, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { /* … */ __pyx_tuple__14 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_3); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* … */ goto __pyx_L14; }
+0265: assert not layout_in is None, \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = (__pyx_v_layout_in != ((PyObject*)Py_None));
if (unlikely(!(__pyx_t_1 != 0))) {
+0266: ("Could not resolve the input layout of Poly because shape==(3,3)",
__pyx_tuple__15 = PyTuple_Pack(2, __pyx_kp_s_Could_not_resolve_the_input_layo, __pyx_kp_s_Please_specify_if_input_is_in_c); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* … */ PyErr_SetObject(PyExc_AssertionError, __pyx_tuple__16); __PYX_ERR(0, 265, __pyx_L1_error) } } #endif __pyx_tuple__16 = PyTuple_Pack(1, __pyx_tuple__15); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16);
0267: " Please specify if input is in '(cc,n)' or '(n,cc)' format!")
+0268: poly = np.array(Poly).T if layout_in.lower()=='(n,cc)' \
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_layout_in); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s_n_cc, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_4, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_v_Poly)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; } else {
+0269: else np.array(Poly)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_7 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_Poly)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_3 = __pyx_t_7; __pyx_t_7 = 0; } __pyx_v_poly = __pyx_t_3; __pyx_t_3 = 0;
0270: else:
+0271: poly = np.array(Poly).T if min(np.shape(Poly))==Poly.shape[1]\
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_7 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_Poly));
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = __Pyx_PyInt_From_Py_intptr_t((__pyx_v_Poly->dimensions[1])); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_1) {
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_4 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_Poly));
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_T); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 271, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
+0272: else np.array(Poly)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_4, ((PyObject *)__pyx_v_Poly)) : __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_v_Poly)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_3 = __pyx_t_2; __pyx_t_2 = 0; } __pyx_v_poly = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L14:;
+0273: if not np.allclose(poly[:,0],poly[:,-1], atol=_VSMALL):
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_allclose); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_poly, __pyx_tuple__17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_tuple__17 = PyTuple_Pack(2, __pyx_slice__8, __pyx_int_0); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_poly, __pyx_tuple__18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_atol, __pyx_t_3) < 0) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_5 = ((!__pyx_t_1) != 0); if (__pyx_t_5) { __pyx_tuple__18 = PyTuple_Pack(2, __pyx_slice__8, __pyx_int_neg_1); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 273, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* … */ }
+0274: poly = np.concatenate((poly,poly[:,0:1]),axis=1)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_slice__19 = PySlice_New(__pyx_int_0, __pyx_int_1, Py_None); if (unlikely(!__pyx_slice__19)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__19); __Pyx_GIVEREF(__pyx_slice__19); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_poly, __pyx_tuple__20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_poly); __Pyx_GIVEREF(__pyx_v_poly); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_poly); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 274, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_poly, __pyx_t_2); __pyx_t_2 = 0; __pyx_tuple__20 = PyTuple_Pack(2, __pyx_slice__8, __pyx_slice__19); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20);
+0275: if poly.shape[0]==2 and not Clock is None:
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_poly, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_1) { } else { __pyx_t_5 = __pyx_t_1; goto __pyx_L17_bool_binop_done; } __pyx_t_1 = (__pyx_v_Clock != Py_None); __pyx_t_6 = (__pyx_t_1 != 0); __pyx_t_5 = __pyx_t_6; __pyx_L17_bool_binop_done:; if (__pyx_t_5) { /* … */ }
+0276: if not Clock==Poly_isClockwise(poly):
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Poly_isClockwise); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_v_poly) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_poly); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(__pyx_v_Clock, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = ((!__pyx_t_5) != 0); if (__pyx_t_6) { /* … */ }
+0277: poly = poly[:,::-1]
__pyx_slice__21 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_slice__21)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__21); __Pyx_GIVEREF(__pyx_slice__21); /* … */ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_poly, __pyx_tuple__22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_poly, __pyx_t_4); __pyx_t_4 = 0; __pyx_tuple__22 = PyTuple_Pack(2, __pyx_slice__8, __pyx_slice__21); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22);
+0278: if not close:
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_close); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 278, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_6) != 0); if (__pyx_t_5) { /* … */ }
+0279: poly = poly[:,:-1]
__pyx_slice__23 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_slice__23)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__23); __Pyx_GIVEREF(__pyx_slice__23); /* … */ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_poly, __pyx_tuple__24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_poly, __pyx_t_4); __pyx_t_4 = 0; __pyx_tuple__24 = PyTuple_Pack(2, __pyx_slice__8, __pyx_slice__23); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 279, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24);
+0280: if layout.lower()=='(n,cc)':
__pyx_t_4 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_layout); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_kp_s_n_cc, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_5) { /* … */ }
+0281: poly = poly.T
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_poly, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_poly, __pyx_t_4); __pyx_t_4 = 0;
0282: # TODO : @LM @DV > seems strange to me that we order all polys
0283: # in order "(cc,n)" and just last minute we look at what's actually
0284: # asked
0285: # >> ok
+0286: poly = np.ascontiguousarray(poly) if order.lower()=='c' \
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_order); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_5) { __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_v_poly) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_poly); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_4 = __pyx_t_2; __pyx_t_2 = 0; } else {
+0287: else np.asfortranarray(poly)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_asfortranarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_v_poly) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_poly); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_t_2; __pyx_t_2 = 0; } __Pyx_DECREF_SET(__pyx_v_poly, __pyx_t_4); __pyx_t_4 = 0;
+0288: return poly
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_poly); __pyx_r = __pyx_v_poly; goto __pyx_L0;
0289:
0290:
+0291: def Poly_VolAngTor(np.ndarray[double,ndim=2,mode='c'] Poly):
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_7Poly_VolAngTor(PyObject *__pyx_self, PyObject *__pyx_v_Poly); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_7Poly_VolAngTor = {"Poly_VolAngTor", (PyCFunction)__pyx_pw_4tofu_4geom_5_GG03_7Poly_VolAngTor, METH_O, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_7Poly_VolAngTor(PyObject *__pyx_self, PyObject *__pyx_v_Poly) {
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Poly_VolAngTor (wrapper)", 0);
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Poly), __pyx_ptype_5numpy_ndarray, 1, "Poly", 0))) __PYX_ERR(0, 291, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_6Poly_VolAngTor(__pyx_self, ((PyArrayObject *)__pyx_v_Poly));
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_6Poly_VolAngTor(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_Poly) {
PyArrayObject *__pyx_v_Ri0 = 0;
PyArrayObject *__pyx_v_Ri1 = 0;
PyArrayObject *__pyx_v_Zi0 = 0;
PyArrayObject *__pyx_v_Zi1 = 0;
double __pyx_v_V;
double __pyx_v_BV0;
double __pyx_v_BV1;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Poly;
__Pyx_Buffer __pyx_pybuffer_Poly;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Ri0;
__Pyx_Buffer __pyx_pybuffer_Ri0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Ri1;
__Pyx_Buffer __pyx_pybuffer_Ri1;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Zi0;
__Pyx_Buffer __pyx_pybuffer_Zi0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Zi1;
__Pyx_Buffer __pyx_pybuffer_Zi1;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Poly_VolAngTor", 0);
__pyx_pybuffer_Ri0.pybuffer.buf = NULL;
__pyx_pybuffer_Ri0.refcount = 0;
__pyx_pybuffernd_Ri0.data = NULL;
__pyx_pybuffernd_Ri0.rcbuffer = &__pyx_pybuffer_Ri0;
__pyx_pybuffer_Ri1.pybuffer.buf = NULL;
__pyx_pybuffer_Ri1.refcount = 0;
__pyx_pybuffernd_Ri1.data = NULL;
__pyx_pybuffernd_Ri1.rcbuffer = &__pyx_pybuffer_Ri1;
__pyx_pybuffer_Zi0.pybuffer.buf = NULL;
__pyx_pybuffer_Zi0.refcount = 0;
__pyx_pybuffernd_Zi0.data = NULL;
__pyx_pybuffernd_Zi0.rcbuffer = &__pyx_pybuffer_Zi0;
__pyx_pybuffer_Zi1.pybuffer.buf = NULL;
__pyx_pybuffer_Zi1.refcount = 0;
__pyx_pybuffernd_Zi1.data = NULL;
__pyx_pybuffernd_Zi1.rcbuffer = &__pyx_pybuffer_Zi1;
__pyx_pybuffer_Poly.pybuffer.buf = NULL;
__pyx_pybuffer_Poly.refcount = 0;
__pyx_pybuffernd_Poly.data = NULL;
__pyx_pybuffernd_Poly.rcbuffer = &__pyx_pybuffer_Poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_Poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 291, __pyx_L1_error)
}
__pyx_pybuffernd_Poly.diminfo[0].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Poly.diminfo[0].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Poly.diminfo[1].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Poly.diminfo[1].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[1];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ri0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ri1.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Zi0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Zi1.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Poly_VolAngTor", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ri0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ri1.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Zi0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Zi1.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_Ri0);
__Pyx_XDECREF((PyObject *)__pyx_v_Ri1);
__Pyx_XDECREF((PyObject *)__pyx_v_Zi0);
__Pyx_XDECREF((PyObject *)__pyx_v_Zi1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__164 = PyTuple_Pack(8, __pyx_n_s_Poly, __pyx_n_s_Ri0, __pyx_n_s_Ri1, __pyx_n_s_Zi0, __pyx_n_s_Zi1, __pyx_n_s_V, __pyx_n_s_BV0, __pyx_n_s_BV1); if (unlikely(!__pyx_tuple__164)) __PYX_ERR(0, 291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__164);
__Pyx_GIVEREF(__pyx_tuple__164);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_7Poly_VolAngTor, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 291, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Poly_VolAngTor, __pyx_t_1) < 0) __PYX_ERR(0, 291, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__165 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__164, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Poly_VolAngTor, 291, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__165)) __PYX_ERR(0, 291, __pyx_L1_error)
0292: # TODO : @LM > to check the formulas can they be optimized ?
+0293: cdef np.ndarray[double,ndim=1] Ri0 = Poly[0,:-1], Ri1 = Poly[0,1:]
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Poly), __pyx_tuple__25); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 293, __pyx_L1_error) __pyx_t_2 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Ri0.rcbuffer->pybuffer, (PyObject*)__pyx_t_2, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_Ri0 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Ri0.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 293, __pyx_L1_error) } else {__pyx_pybuffernd_Ri0.diminfo[0].strides = __pyx_pybuffernd_Ri0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Ri0.diminfo[0].shape = __pyx_pybuffernd_Ri0.rcbuffer->pybuffer.shape[0]; } } __pyx_t_2 = 0; __pyx_v_Ri0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__25 = PyTuple_Pack(2, __pyx_int_0, __pyx_slice__23); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); __pyx_slice__26 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__26)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__26); __Pyx_GIVEREF(__pyx_slice__26); __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Poly), __pyx_tuple__27); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 293, __pyx_L1_error) __pyx_t_2 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Ri1.rcbuffer->pybuffer, (PyObject*)__pyx_t_2, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_Ri1 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Ri1.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 293, __pyx_L1_error) } else {__pyx_pybuffernd_Ri1.diminfo[0].strides = __pyx_pybuffernd_Ri1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Ri1.diminfo[0].shape = __pyx_pybuffernd_Ri1.rcbuffer->pybuffer.shape[0]; } } __pyx_t_2 = 0; __pyx_v_Ri1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_tuple__27 = PyTuple_Pack(2, __pyx_int_0, __pyx_slice__26); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27);
+0294: cdef np.ndarray[double,ndim=1] Zi0 = Poly[1,:-1], Zi1 = Poly[1,1:]
/* "tofu/geom/_GG03.pyx":294 * # TODO : @LM > to check the formulas can they be optimized ? * cdef np.ndarray[double,ndim=1] Ri0 = Poly[0,:-1], Ri1 = Poly[0,1:] * cdef np.ndarray[double,ndim=1] Zi0 = Poly[1,:-1], Zi1 = Poly[1,1:] # <<<<<<<<<<<<<< * cdef double V = np.sum((Ri0*Zi1 - Zi0*Ri1) * (Ri0+Ri1)) / 6. * cdef double BV0 = np.sum(0.5 * (Ri0*Zi1 - Zi0*Ri1) * */ __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Poly), __pyx_tuple__28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 294, __pyx_L1_error) __pyx_t_3 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Zi0.rcbuffer->pybuffer, (PyObject*)__pyx_t_3, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_Zi0 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Zi0.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 294, __pyx_L1_error) } else {__pyx_pybuffernd_Zi0.diminfo[0].strides = __pyx_pybuffernd_Zi0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Zi0.diminfo[0].shape = __pyx_pybuffernd_Zi0.rcbuffer->pybuffer.shape[0]; } } __pyx_t_3 = 0; __pyx_v_Zi0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "tofu/geom/_GG03.pyx":294 * # TODO : @LM > to check the formulas can they be optimized ? * cdef np.ndarray[double,ndim=1] Ri0 = Poly[0,:-1], Ri1 = Poly[0,1:] * cdef np.ndarray[double,ndim=1] Zi0 = Poly[1,:-1], Zi1 = Poly[1,1:] # <<<<<<<<<<<<<< * cdef double V = np.sum((Ri0*Zi1 - Zi0*Ri1) * (Ri0+Ri1)) / 6. * cdef double BV0 = np.sum(0.5 * (Ri0*Zi1 - Zi0*Ri1) * */ __pyx_tuple__28 = PyTuple_Pack(2, __pyx_int_1, __pyx_slice__23); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Poly), __pyx_tuple__29); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 294, __pyx_L1_error) __pyx_t_3 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Zi1.rcbuffer->pybuffer, (PyObject*)__pyx_t_3, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_Zi1 = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Zi1.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 294, __pyx_L1_error) } else {__pyx_pybuffernd_Zi1.diminfo[0].strides = __pyx_pybuffernd_Zi1.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Zi1.diminfo[0].shape = __pyx_pybuffernd_Zi1.rcbuffer->pybuffer.shape[0]; } } __pyx_t_3 = 0; __pyx_v_Zi1 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_tuple__29 = PyTuple_Pack(2, __pyx_int_1, __pyx_slice__26); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29);
+0295: cdef double V = np.sum((Ri0*Zi1 - Zi0*Ri1) * (Ri0+Ri1)) / 6.
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sum); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(((PyObject *)__pyx_v_Ri0), ((PyObject *)__pyx_v_Zi1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Multiply(((PyObject *)__pyx_v_Zi0), ((PyObject *)__pyx_v_Ri1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Subtract(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Add(((PyObject *)__pyx_v_Ri0), ((PyObject *)__pyx_v_Ri1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyNumber_Multiply(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyFloat_DivideObjC(__pyx_t_1, __pyx_float_6_, 6., 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_V = __pyx_t_8;
+0296: cdef double BV0 = np.sum(0.5 * (Ri0*Zi1 - Zi0*Ri1) *
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_v_Ri0), ((PyObject *)__pyx_v_Zi1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyNumber_Multiply(((PyObject *)__pyx_v_Zi0), ((PyObject *)__pyx_v_Ri1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_float_0_5, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_1 = PyNumber_Multiply(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0297: (Ri1**2 + Ri1*Ri0 + Ri0**2)) / (6.*V)
__pyx_t_7 = PyNumber_Power(((PyObject *)__pyx_v_Ri1), __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_v_Ri1), ((PyObject *)__pyx_v_Ri0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = PyNumber_Add(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Power(((PyObject *)__pyx_v_Ri0), __pyx_int_2, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = PyNumber_Add(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_4 = PyFloat_FromDouble((6. * __pyx_v_V)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_BV0 = __pyx_t_8;
+0298: cdef double BV1 = -np.sum((Ri1**2*Zi0*(2.*Zi1+Zi0) +
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sum); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_4 = PyNumber_Power(((PyObject *)__pyx_v_Ri1), __pyx_int_2, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* … */ __pyx_t_7 = PyNumber_Multiply(__pyx_t_4, ((PyObject *)__pyx_v_Zi0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_float_2_, ((PyObject *)__pyx_v_Zi1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyNumber_Add(__pyx_t_4, ((PyObject *)__pyx_v_Zi0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_10 = PyNumber_Add(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_t_5 = PyNumber_Negative(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0299: 2.*Ri0*Ri1*(Zi0**2-Zi1**2) -
__pyx_t_6 = PyNumber_Multiply(__pyx_float_2_, ((PyObject *)__pyx_v_Ri0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, ((PyObject *)__pyx_v_Ri1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Power(((PyObject *)__pyx_v_Zi0), __pyx_int_2, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = PyNumber_Power(((PyObject *)__pyx_v_Zi1), __pyx_int_2, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyNumber_Subtract(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Multiply(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* … */ __pyx_t_7 = PyNumber_Subtract(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0300: Ri0**2*Zi1*(Zi1+2.*Zi0))/4.) / (6.*V)
__pyx_t_9 = PyNumber_Power(((PyObject *)__pyx_v_Ri0), __pyx_int_2, Py_None); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = PyNumber_Multiply(__pyx_t_9, ((PyObject *)__pyx_v_Zi1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Multiply(__pyx_float_2_, ((PyObject *)__pyx_v_Zi0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = PyNumber_Add(((PyObject *)__pyx_v_Zi1), __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_9 = __Pyx_PyFloat_DivideObjC(__pyx_t_7, __pyx_float_4_, 4., 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_1 = PyFloat_FromDouble((6. * __pyx_v_V)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyNumber_Divide(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_BV1 = __pyx_t_8;
+0301: return V, np.array([BV0,BV1])
__Pyx_XDECREF(__pyx_r); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_V); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(__pyx_v_BV0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_BV1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_10); __pyx_t_5 = 0; __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1); __pyx_t_9 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
0302:
0303:
0304:
0305: """
0306: ###############################################################################
0307: ###############################################################################
0308: Sinogram specific
0309: ###############################################################################
0310: """
0311:
+0312: def Sino_ImpactEnv(np.ndarray[double,ndim=1] RZ,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_9Sino_ImpactEnv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_8Sino_ImpactEnv[] = " Computes impact parameters of a Tor enveloppe\n (a `Tor` is a closed 2D polygon)\n\n D. VEZINET, Aug. 2014\n Parameters\n ----------\n RZ : np.ndarray\n (2,) array indicating the reference impact point\n Poly : np.ndarray\n (2,N) array containing the coordinatesof a closed polygon\n NP : int\n Number of indicating the number of points used for discretising theta between 0 and pi\n\n Returns\n -------\n theta\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_9Sino_ImpactEnv = {"Sino_ImpactEnv", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_9Sino_ImpactEnv, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_8Sino_ImpactEnv};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_9Sino_ImpactEnv(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyArrayObject *__pyx_v_RZ = 0;
PyArrayObject *__pyx_v_Poly = 0;
int __pyx_v_NP;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Sino_ImpactEnv (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_RZ,&__pyx_n_s_Poly,&__pyx_n_s_NP,&__pyx_n_s_Test,0};
PyObject* values[4] = {0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_8Sino_ImpactEnv(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_RZ, PyArrayObject *__pyx_v_Poly, int __pyx_v_NP, PyObject *__pyx_v_Test) {
CYTHON_UNUSED int __pyx_v_NPoly;
PyObject *__pyx_v_theta = NULL;
PyObject *__pyx_v_vect = NULL;
PyObject *__pyx_v_sca = NULL;
PyObject *__pyx_v_scamin = NULL;
PyObject *__pyx_v_scamax = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Poly;
__Pyx_Buffer __pyx_pybuffer_Poly;
__Pyx_LocalBuf_ND __pyx_pybuffernd_RZ;
__Pyx_Buffer __pyx_pybuffer_RZ;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Sino_ImpactEnv", 0);
__pyx_pybuffer_RZ.pybuffer.buf = NULL;
__pyx_pybuffer_RZ.refcount = 0;
__pyx_pybuffernd_RZ.data = NULL;
__pyx_pybuffernd_RZ.rcbuffer = &__pyx_pybuffer_RZ;
__pyx_pybuffer_Poly.pybuffer.buf = NULL;
__pyx_pybuffer_Poly.refcount = 0;
__pyx_pybuffernd_Poly.data = NULL;
__pyx_pybuffernd_Poly.rcbuffer = &__pyx_pybuffer_Poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_RZ.rcbuffer->pybuffer, (PyObject*)__pyx_v_RZ, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 312, __pyx_L1_error)
}
__pyx_pybuffernd_RZ.diminfo[0].strides = __pyx_pybuffernd_RZ.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_RZ.diminfo[0].shape = __pyx_pybuffernd_RZ.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_Poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 312, __pyx_L1_error)
}
__pyx_pybuffernd_Poly.diminfo[0].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Poly.diminfo[0].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Poly.diminfo[1].strides = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Poly.diminfo[1].shape = __pyx_pybuffernd_Poly.rcbuffer->pybuffer.shape[1];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_RZ.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Sino_ImpactEnv", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Poly.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_RZ.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_theta);
__Pyx_XDECREF(__pyx_v_vect);
__Pyx_XDECREF(__pyx_v_sca);
__Pyx_XDECREF(__pyx_v_scamin);
__Pyx_XDECREF(__pyx_v_scamax);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__166 = PyTuple_Pack(10, __pyx_n_s_RZ, __pyx_n_s_Poly, __pyx_n_s_NP, __pyx_n_s_Test, __pyx_n_s_NPoly, __pyx_n_s_theta, __pyx_n_s_vect, __pyx_n_s_sca, __pyx_n_s_scamin, __pyx_n_s_scamax); if (unlikely(!__pyx_tuple__166)) __PYX_ERR(0, 312, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__166);
__Pyx_GIVEREF(__pyx_tuple__166);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_9Sino_ImpactEnv, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 312, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Sino_ImpactEnv, __pyx_t_1) < 0) __PYX_ERR(0, 312, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__167 = (PyObject*)__Pyx_PyCode_New(4, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__166, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Sino_ImpactEnv, 312, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__167)) __PYX_ERR(0, 312, __pyx_L1_error)
+0313: np.ndarray[double,ndim=2] Poly, int NP=50, Test=True):
values[3] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RZ)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("Sino_ImpactEnv", 0, 2, 4, 1); __PYX_ERR(0, 312, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NP);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Sino_ImpactEnv") < 0)) __PYX_ERR(0, 312, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_RZ = ((PyArrayObject *)values[0]);
__pyx_v_Poly = ((PyArrayObject *)values[1]);
if (values[2]) {
__pyx_v_NP = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_NP == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 313, __pyx_L3_error)
} else {
__pyx_v_NP = ((int)50);
}
__pyx_v_Test = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("Sino_ImpactEnv", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 312, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.Sino_ImpactEnv", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_RZ), __pyx_ptype_5numpy_ndarray, 1, "RZ", 0))) __PYX_ERR(0, 312, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Poly), __pyx_ptype_5numpy_ndarray, 1, "Poly", 0))) __PYX_ERR(0, 313, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_8Sino_ImpactEnv(__pyx_self, __pyx_v_RZ, __pyx_v_Poly, __pyx_v_NP, __pyx_v_Test);
0314: """ Computes impact parameters of a Tor enveloppe
0315: (a `Tor` is a closed 2D polygon)
0316:
0317: D. VEZINET, Aug. 2014
0318: Parameters
0319: ----------
0320: RZ : np.ndarray
0321: (2,) array indicating the reference impact point
0322: Poly : np.ndarray
0323: (2,N) array containing the coordinatesof a closed polygon
0324: NP : int
0325: Number of indicating the number of points used for discretising theta between 0 and pi
0326:
0327: Returns
0328: -------
0329: theta
0330: """
+0331: if Test:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 331, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0332: assert RZ.size==2, 'Arg RZ should be a (2,) np.ndarray!'
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_RZ), __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_RZ_should_be_a_2_np_ndarray);
__PYX_ERR(0, 332, __pyx_L1_error)
}
}
#endif
+0333: assert Poly.shape[0]==2, 'Arg Poly should be a (2,N) np.ndarray!'
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!(((__pyx_v_Poly->dimensions[0]) == 2) != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Poly_should_be_a_2_N_np_ndar);
__PYX_ERR(0, 333, __pyx_L1_error)
}
}
#endif
+0334: cdef int NPoly = Poly.shape[1]
__pyx_v_NPoly = (__pyx_v_Poly->dimensions[1]);
0335: # Theta sampling and unit vector
+0336: theta = np.linspace(0.,np.pi,NP,endpoint=True)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_linspace); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_float_0_); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_endpoint, Py_True) < 0) __PYX_ERR(0, 336, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 336, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_theta = __pyx_t_4; __pyx_t_4 = 0;
+0337: vect = np.array([np.cos(theta), np.sin(theta)])
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_cos); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_v_theta) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_theta); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_2, __pyx_v_theta) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_theta); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_3 = 0; __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_vect = __pyx_t_4; __pyx_t_4 = 0;
0338:
0339: # Scalar product
+0340: sca = np.sum(vect[:,:,np.newaxis]*(Poly-RZ[:,np.newaxis])[:,np.newaxis,:],axis=0)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sum); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_newaxis); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_vect, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_newaxis); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_RZ), __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(((PyObject *)__pyx_v_Poly), __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_newaxis); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_slice__8); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 340, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_sca = __pyx_t_7; __pyx_t_7 = 0;
+0341: scamin = np.min(sca,axis=1)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_sca); __Pyx_GIVEREF(__pyx_v_sca); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_sca); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 341, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 341, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_scamin = __pyx_t_5; __pyx_t_5 = 0;
+0342: scamax = np.max(sca,axis=1)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_sca); __Pyx_GIVEREF(__pyx_v_sca); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_sca); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 342, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_scamax = __pyx_t_6; __pyx_t_6 = 0;
+0343: return theta, np.array([scamax, scamin])
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_scamax); __Pyx_GIVEREF(__pyx_v_scamax); PyList_SET_ITEM(__pyx_t_7, 0, __pyx_v_scamax); __Pyx_INCREF(__pyx_v_scamin); __Pyx_GIVEREF(__pyx_v_scamin); PyList_SET_ITEM(__pyx_t_7, 1, __pyx_v_scamin); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_theta); __Pyx_GIVEREF(__pyx_v_theta); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_theta); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
0344:
0345:
0346: # For sinograms
+0347: def ConvertImpact_Theta2Xi(theta, pP, pN, sort=True):
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_11ConvertImpact_Theta2Xi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_11ConvertImpact_Theta2Xi = {"ConvertImpact_Theta2Xi", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_11ConvertImpact_Theta2Xi, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_11ConvertImpact_Theta2Xi(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_theta = 0;
PyObject *__pyx_v_pP = 0;
PyObject *__pyx_v_pN = 0;
PyObject *__pyx_v_sort = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ConvertImpact_Theta2Xi (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_theta,&__pyx_n_s_pP,&__pyx_n_s_pN,&__pyx_n_s_sort,0};
PyObject* values[4] = {0,0,0,0};
values[3] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_theta)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pP)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ConvertImpact_Theta2Xi", 0, 3, 4, 1); __PYX_ERR(0, 347, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pN)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("ConvertImpact_Theta2Xi", 0, 3, 4, 2); __PYX_ERR(0, 347, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sort);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ConvertImpact_Theta2Xi") < 0)) __PYX_ERR(0, 347, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_theta = values[0];
__pyx_v_pP = values[1];
__pyx_v_pN = values[2];
__pyx_v_sort = values[3];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("ConvertImpact_Theta2Xi", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 347, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.ConvertImpact_Theta2Xi", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_10ConvertImpact_Theta2Xi(__pyx_self, __pyx_v_theta, __pyx_v_pP, __pyx_v_pN, __pyx_v_sort);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_10ConvertImpact_Theta2Xi(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_theta, PyObject *__pyx_v_pP, PyObject *__pyx_v_pN, PyObject *__pyx_v_sort) {
PyObject *__pyx_v_pPbis = NULL;
PyObject *__pyx_v_pNbis = NULL;
PyObject *__pyx_v_xi = NULL;
PyObject *__pyx_v_ind = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("ConvertImpact_Theta2Xi", 0);
__Pyx_INCREF(__pyx_v_theta);
__Pyx_INCREF(__pyx_v_pP);
__Pyx_INCREF(__pyx_v_pN);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_AddTraceback("tofu.geom._GG03.ConvertImpact_Theta2Xi", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_pPbis);
__Pyx_XDECREF(__pyx_v_pNbis);
__Pyx_XDECREF(__pyx_v_xi);
__Pyx_XDECREF(__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_theta);
__Pyx_XDECREF(__pyx_v_pP);
__Pyx_XDECREF(__pyx_v_pN);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__168 = PyTuple_Pack(8, __pyx_n_s_theta, __pyx_n_s_pP, __pyx_n_s_pN, __pyx_n_s_sort, __pyx_n_s_pPbis, __pyx_n_s_pNbis, __pyx_n_s_xi, __pyx_n_s_ind); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(0, 347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__168);
__Pyx_GIVEREF(__pyx_tuple__168);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_11ConvertImpact_Theta2Xi, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_ConvertImpact_Theta2Xi, __pyx_t_1) < 0) __PYX_ERR(0, 347, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__169 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__168, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_ConvertImpact_Theta2Xi, 347, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__169)) __PYX_ERR(0, 347, __pyx_L1_error)
+0348: if hasattr(theta,'__getitem__'):
__pyx_t_1 = __Pyx_HasAttr(__pyx_v_theta, __pyx_n_s_getitem); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 348, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ }
+0349: pP, pN, theta = np.asarray(pP), np.asarray(pN), np.asarray(theta)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_v_pP) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_pP); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_v_pN) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pN); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_4, __pyx_v_theta) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_theta); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_pP, __pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_pN, __pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_theta, __pyx_t_6); __pyx_t_6 = 0;
+0350: assert pP.shape==pN.shape==theta.shape, (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pP, __pyx_n_s_shape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pN, __pyx_n_s_shape); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 350, __pyx_L1_error)
if (__Pyx_PyObject_IsTrue(__pyx_t_3)) {
__Pyx_DECREF(__pyx_t_3);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_theta, __pyx_n_s_shape); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_7, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 350, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_2)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_pP_pN_and_theta_must_have_s);
__PYX_ERR(0, 350, __pyx_L1_error)
}
}
#endif
0351: "Args pP, pN and theta must have same shape!")
+0352: pPbis, pNbis = np.copy(pP), np.copy(pN)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_pP) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_pP); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_copy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_v_pN) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_pN); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 352, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_pPbis = __pyx_t_3; __pyx_t_3 = 0; __pyx_v_pNbis = __pyx_t_6; __pyx_t_6 = 0;
+0353: xi = theta - np.pi/2.
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_pi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyFloat_DivideObjC(__pyx_t_3, __pyx_float_2_, 2., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_v_theta, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_xi = __pyx_t_3; __pyx_t_3 = 0;
+0354: ind = xi < 0
__pyx_t_3 = PyObject_RichCompare(__pyx_v_xi, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error) __pyx_v_ind = __pyx_t_3; __pyx_t_3 = 0;
+0355: pPbis[ind], pNbis[ind], xi[ind] = -pN[ind], -pP[ind], xi[ind]+np.pi
__pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pN, __pyx_v_ind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyNumber_Negative(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pP, __pyx_v_ind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyNumber_Negative(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_xi, __pyx_v_ind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_pi); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(__pyx_v_pPbis, __pyx_v_ind, __pyx_t_6) < 0)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyObject_SetItem(__pyx_v_pNbis, __pyx_v_ind, __pyx_t_7) < 0)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyObject_SetItem(__pyx_v_xi, __pyx_v_ind, __pyx_t_5) < 0)) __PYX_ERR(0, 355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0356: if sort:
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_sort); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 356, __pyx_L1_error) if (__pyx_t_2) { /* … */ }
+0357: ind = np.argsort(xi)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_argsort); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_xi) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_xi); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 357, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_ind, __pyx_t_5); __pyx_t_5 = 0;
+0358: xi, pP, pN = xi[ind], pPbis[ind], pNbis[ind]
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_xi, __pyx_v_ind); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_pPbis, __pyx_v_ind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pNbis, __pyx_v_ind); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF_SET(__pyx_v_xi, __pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_pP, __pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_pN, __pyx_t_7); __pyx_t_7 = 0;
+0359: return xi, pP, pN
__Pyx_XDECREF(__pyx_r); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 359, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_xi); __Pyx_GIVEREF(__pyx_v_xi); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_xi); __Pyx_INCREF(__pyx_v_pP); __Pyx_GIVEREF(__pyx_v_pP); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_pP); __Pyx_INCREF(__pyx_v_pN); __Pyx_GIVEREF(__pyx_v_pN); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_pN); __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
0360: else:
+0361: assert not (hasattr(pP,'__getitem__') or hasattr(pN,'__getitem__')), (
/*else*/ {
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_HasAttr(__pyx_v_pP, __pyx_n_s_getitem); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 361, __pyx_L1_error)
__pyx_t_8 = (__pyx_t_1 != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_2 = __pyx_t_8;
goto __pyx_L5_bool_binop_done;
}
__pyx_t_8 = __Pyx_HasAttr(__pyx_v_pN, __pyx_n_s_getitem); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 361, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_8 != 0);
__pyx_t_2 = __pyx_t_1;
__pyx_L5_bool_binop_done:;
if (unlikely(!((!__pyx_t_2) != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_pP_pN_and_theta_must_have_s);
__PYX_ERR(0, 361, __pyx_L1_error)
}
}
#endif
0362: "Args pP, pN and theta must have same shape!")
+0363: xi = theta - np.pi/2.
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_pi); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyFloat_DivideObjC(__pyx_t_6, __pyx_float_2_, 2., 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Subtract(__pyx_v_theta, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_xi = __pyx_t_6; __pyx_t_6 = 0;
+0364: if xi < 0.:
__pyx_t_6 = PyObject_RichCompare(__pyx_v_xi, __pyx_float_0_, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 364, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 364, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ }
+0365: return xi+np.pi, -pN, -pP
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_pi); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Add(__pyx_v_xi, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Negative(__pyx_v_pN); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyNumber_Negative(__pyx_v_pP); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0366: else:
+0367: return xi, pP, pN
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_xi);
__Pyx_GIVEREF(__pyx_v_xi);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_xi);
__Pyx_INCREF(__pyx_v_pP);
__Pyx_GIVEREF(__pyx_v_pP);
PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_pP);
__Pyx_INCREF(__pyx_v_pN);
__Pyx_GIVEREF(__pyx_v_pN);
PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_pN);
__pyx_r = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L0;
}
}
0368:
0369:
0370: """
0371: ########################################################
0372: ########################################################
0373: ########################################################
0374: # Ves-specific
0375: ########################################################
0376: ########################################################
0377: ########################################################
0378: """
0379:
0380:
0381: ########################################################
0382: ########################################################
0383: # isInside
0384: ########################################################
0385:
+0386: def _Ves_isInside(Pts, VPoly, Lim=None, nLim=None,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_13_Ves_isInside(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_13_Ves_isInside = {"_Ves_isInside", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_13_Ves_isInside, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_13_Ves_isInside(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_Pts = 0;
PyObject *__pyx_v_VPoly = 0;
PyObject *__pyx_v_Lim = 0;
PyObject *__pyx_v_nLim = 0;
PyObject *__pyx_v_VType = 0;
PyObject *__pyx_v_In = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_isInside (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Pts,&__pyx_n_s_VPoly,&__pyx_n_s_Lim,&__pyx_n_s_nLim,&__pyx_n_s_VType,&__pyx_n_s_In,&__pyx_n_s_Test,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
values[2] = ((PyObject *)Py_None);
values[3] = ((PyObject *)Py_None);
values[4] = ((PyObject *)__pyx_n_s_Tor);
values[5] = ((PyObject *)__pyx_kp_s_X_Y_Z);
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_12_Ves_isInside(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_Pts, PyObject *__pyx_v_VPoly, PyObject *__pyx_v_Lim, PyObject *__pyx_v_nLim, PyObject *__pyx_v_VType, PyObject *__pyx_v_In, PyObject *__pyx_v_Test) {
CYTHON_UNUSED PyObject *__pyx_v_path = NULL;
PyObject *__pyx_v_pts = NULL;
PyObject *__pyx_v_ind = NULL;
PyObject *__pyx_v_err = NULL;
PyObject *__pyx_v_msg = NULL;
PyObject *__pyx_v_ind0 = NULL;
PyObject *__pyx_v_ii = NULL;
PyObject *__pyx_v_lim = NULL;
PyObject *__pyx_v_ll = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_isInside", 0);
__Pyx_INCREF(__pyx_v_Lim);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("tofu.geom._GG03._Ves_isInside", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_path);
__Pyx_XDECREF(__pyx_v_pts);
__Pyx_XDECREF(__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_err);
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_XDECREF(__pyx_v_ind0);
__Pyx_XDECREF(__pyx_v_ii);
__Pyx_XDECREF(__pyx_v_lim);
__Pyx_XDECREF(__pyx_v_ll);
__Pyx_XDECREF(__pyx_v_Lim);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__170 = PyTuple_Pack(16, __pyx_n_s_Pts, __pyx_n_s_VPoly, __pyx_n_s_Lim, __pyx_n_s_nLim, __pyx_n_s_VType, __pyx_n_s_In, __pyx_n_s_Test, __pyx_n_s_path, __pyx_n_s_pts, __pyx_n_s_ind, __pyx_n_s_err, __pyx_n_s_msg, __pyx_n_s_ind0, __pyx_n_s_ii, __pyx_n_s_lim, __pyx_n_s_ll); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(0, 386, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__170);
__Pyx_GIVEREF(__pyx_tuple__170);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_13_Ves_isInside, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 386, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_isInside, __pyx_t_1) < 0) __PYX_ERR(0, 386, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__171 = (PyObject*)__Pyx_PyCode_New(7, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__170, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_isInside, 386, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__171)) __PYX_ERR(0, 386, __pyx_L1_error)
+0387: VType='Tor', In='(X,Y,Z)', Test=True):
values[6] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Pts)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_isInside", 0, 2, 7, 1); __PYX_ERR(0, 386, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Lim);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nLim);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VType);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_In);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_isInside") < 0)) __PYX_ERR(0, 386, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_Pts = values[0];
__pyx_v_VPoly = values[1];
__pyx_v_Lim = values[2];
__pyx_v_nLim = values[3];
__pyx_v_VType = values[4];
__pyx_v_In = values[5];
__pyx_v_Test = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_isInside", 0, 2, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 386, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_isInside", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_12_Ves_isInside(__pyx_self, __pyx_v_Pts, __pyx_v_VPoly, __pyx_v_Lim, __pyx_v_nLim, __pyx_v_VType, __pyx_v_In, __pyx_v_Test);
+0388: if Test:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 388, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+0389: assert type(Pts) is np.ndarray and Pts.ndim in [1,2], "Arg Pts must be a 1D or 2D np.ndarray !"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_Pts)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 389, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 389, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 389, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_3 = __pyx_t_2;
__pyx_L6_bool_binop_done:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Pts_must_be_a_1D_or_2D_np_nd);
__PYX_ERR(0, 389, __pyx_L1_error)
}
}
#endif
+0390: assert type(VPoly) is np.ndarray and VPoly.ndim==2 and VPoly.shape[0]==2, "Arg VPoly must be a (2,N) np.ndarray !"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_VPoly)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_shape); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 390, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_1 = __pyx_t_3;
__pyx_L8_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_VPoly_must_be_a_2_N_np_ndarr);
__PYX_ERR(0, 390, __pyx_L1_error)
}
}
#endif
+0391: assert Lim is None or (hasattr(Lim,'__iter__') and len(Lim)==2) or (hasattr(Lim,'__iter__') and all([hasattr(ll,'__iter__') and len(ll)==2 for ll in Lim])), "Arg Lim must be a len()==2 iterable or a list of such !"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = (__pyx_v_Lim == Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_2 = __Pyx_HasAttr(__pyx_v_Lim, __pyx_n_s_iter); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_2 != 0);
if (!__pyx_t_3) {
goto __pyx_L13_next_or;
} else {
}
__pyx_t_6 = PyObject_Length(__pyx_v_Lim); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
__pyx_t_3 = ((__pyx_t_6 == 2) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L11_bool_binop_done;
}
__pyx_L13_next_or:;
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_Lim, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_3 != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
if (likely(PyList_CheckExact(__pyx_v_Lim)) || PyTuple_CheckExact(__pyx_v_Lim)) {
__pyx_t_4 = __pyx_v_Lim; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
__pyx_t_7 = NULL;
} else {
__pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_Lim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 391, __pyx_L1_error)
}
for (;;) {
if (likely(!__pyx_t_7)) {
if (likely(PyList_CheckExact(__pyx_t_4))) {
if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 391, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
} else {
if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 391, __pyx_L1_error)
#else
__pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
#endif
}
} else {
__pyx_t_8 = __pyx_t_7(__pyx_t_4);
if (unlikely(!__pyx_t_8)) {
PyObject* exc_type = PyErr_Occurred();
if (exc_type) {
if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
else __PYX_ERR(0, 391, __pyx_L1_error)
}
break;
}
__Pyx_GOTREF(__pyx_t_8);
}
__Pyx_XDECREF_SET(__pyx_v_ll, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_2 = __Pyx_HasAttr(__pyx_v_ll, __pyx_n_s_iter); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
if (__pyx_t_2) {
} else {
__pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = __pyx_t_9;
__pyx_t_9 = 0;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_10 = PyObject_Length(__pyx_v_ll); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 391, __pyx_L1_error)
__pyx_t_2 = (__pyx_t_10 == 2);
__pyx_t_9 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = __pyx_t_9;
__pyx_t_9 = 0;
__pyx_L18_bool_binop_done:;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 391, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L11_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Lim_must_be_a_len_2_iterable);
__PYX_ERR(0, 391, __pyx_L1_error)
}
}
#endif
+0392: assert type(VType) is str and VType.lower() in ['tor','lin'], "Arg VType must be a str in ['Tor','Lin'] !"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_VType)) == ((PyObject *)(&PyString_Type)));
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_VType, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 392, __pyx_L1_error)
if (!__pyx_t_2) {
} else {
__pyx_t_3 = __pyx_t_2;
goto __pyx_L22_bool_binop_done;
}
__pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_lin, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 392, __pyx_L1_error)
__pyx_t_3 = __pyx_t_2;
__pyx_L22_bool_binop_done:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = (__pyx_t_3 != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_VType_must_be_a_str_in_Tor_L);
__PYX_ERR(0, 392, __pyx_L1_error)
}
}
#endif
+0393: assert type(nLim) in [int,np.int64] and nLim>=0
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_nLim)));
__pyx_t_4 = ((PyObject *)Py_TYPE(__pyx_v_nLim));
__pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_4), ((PyObject *)(&PyInt_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 393, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (!__pyx_t_3) {
} else {
__pyx_t_2 = __pyx_t_3;
goto __pyx_L26_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_int64); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = __pyx_t_3;
__pyx_L26_bool_binop_done:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_3 = (__pyx_t_2 != 0);
if (__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_4 = PyObject_RichCompare(__pyx_v_nLim, __pyx_int_0, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 393, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_1 = __pyx_t_3;
__pyx_L24_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 393, __pyx_L1_error)
}
}
#endif
0394:
+0395: path = Path(VPoly.T)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_path = __pyx_t_4; __pyx_t_4 = 0;
+0396: if VType.lower()=='tor':
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_VType, __pyx_n_s_lower); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 396, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L28; }
+0397: if Lim is None or nLim==0:
__pyx_t_3 = (__pyx_v_Lim == Py_None);
__pyx_t_2 = (__pyx_t_3 != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_nLim, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 397, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 397, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L30_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L29;
}
+0398: pts = CoordShift(Pts, In=In, Out='(R,Z)')
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CoordShift); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_Pts); __Pyx_GIVEREF(__pyx_v_Pts); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_Pts); __pyx_t_8 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_In, __pyx_v_In) < 0) __PYX_ERR(0, 398, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_Out, __pyx_kp_s_R_Z) < 0) __PYX_ERR(0, 398, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_pts = __pyx_t_9; __pyx_t_9 = 0;
0399: # TODO : @LM > voir avec la fct matplotlib et est-ce que c'est possible de
0400: # recoder pour faire plus rapide
+0401: ind = Path(VPoly.T).contains_points(pts.T, transform=None,
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_Path); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_9 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_pts, __pyx_n_s_T); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 401, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 401, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_ind = __pyx_t_4; __pyx_t_4 = 0;
0402: radius=0.0)
0403: else:
+0404: try:
/*else*/ {
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L37_try_end;
__pyx_L32_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L1_error;
__pyx_L37_try_end:;
}
+0405: pts = CoordShift(Pts, In=In, Out='(R,Z,Phi)')
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CoordShift); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 405, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 405, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_Pts); __Pyx_GIVEREF(__pyx_v_Pts); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_Pts); __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 405, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_In, __pyx_v_In) < 0) __PYX_ERR(0, 405, __pyx_L32_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_Out, __pyx_kp_s_R_Z_Phi) < 0) __PYX_ERR(0, 405, __pyx_L32_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 405, __pyx_L32_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_pts = __pyx_t_8; __pyx_t_8 = 0;
+0406: except Exception as err:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_14) { __Pyx_AddTraceback("tofu.geom._GG03._Ves_isInside", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_5, &__pyx_t_9) < 0) __PYX_ERR(0, 406, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GOTREF(__pyx_t_5); __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_v_err = __pyx_t_5;
+0407: msg = str(err)
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_err); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 407, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_msg = __pyx_t_4; __pyx_t_4 = 0;
+0408: msg += "\n You may have specified points in (R,Z)"
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_msg, __pyx_kp_s_You_may_have_specified_points_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 408, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_4); __pyx_t_4 = 0;
+0409: msg += "\n But there are toroidally limited elements !"
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_msg, __pyx_kp_s_But_there_are_toroidally_limite); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 409, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_4); __pyx_t_4 = 0;
+0410: msg += "\n (i.e.: element with self.nLim>0)"
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_msg, __pyx_kp_s_i_e_element_with_self_nLim_0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_4); __pyx_t_4 = 0;
+0411: msg += "\n These require to know the phi of points !"
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_msg, __pyx_kp_s_These_require_to_know_the_phi_o); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 411, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_4); __pyx_t_4 = 0;
+0412: raise Exception(msg)
__pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_v_msg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 412, __pyx_L34_except_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_Raise(__pyx_t_4, 0, 0, 0); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(0, 412, __pyx_L34_except_error) } goto __pyx_L34_except_error; __pyx_L34_except_error:;
0413:
+0414: ind0 = Path(VPoly.T).contains_points(pts[:2,:].T,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_9 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_slice__30 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_slice__30)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_slice__30); __Pyx_GIVEREF(__pyx_slice__30); __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__31); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = 0; /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_ind0 = __pyx_t_4; __pyx_t_4 = 0; __pyx_tuple__31 = PyTuple_Pack(2, __pyx_slice__30, __pyx_slice__8); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 414, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31);
+0415: transform=None, radius=0.0)
__pyx_t_8 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 415, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 415, __pyx_L1_error)
+0416: if nLim>1:
__pyx_t_4 = PyObject_RichCompare(__pyx_v_nLim, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 416, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 416, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L40; }
+0417: ind = np.zeros((nLim,Pts.shape[1]),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_nLim); __Pyx_GIVEREF(__pyx_v_nLim); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_nLim); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 417, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_ind = __pyx_t_5; __pyx_t_5 = 0;
+0418: for ii in range(0,len(Lim)):
__pyx_t_6 = PyObject_Length(__pyx_v_Lim); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 418, __pyx_L1_error) __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 418, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_4))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 418, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 418, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 418, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_ii, __pyx_t_5); __pyx_t_5 = 0; /* … */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0419: lim = [Catan2(Csin(Lim[ii][0]),Ccos(Lim[ii][0])),
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_v_ii); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(atan2(sin(__pyx_t_15), cos(__pyx_t_16))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); /* … */ __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_9); __pyx_t_5 = 0; __pyx_t_9 = 0; __Pyx_XDECREF_SET(__pyx_v_lim, ((PyObject*)__pyx_t_8)); __pyx_t_8 = 0;
+0420: Catan2(Csin(Lim[ii][1]),Ccos(Lim[ii][1]))]
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_v_ii); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_9, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_v_ii); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_8, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyFloat_FromDouble(atan2(sin(__pyx_t_16), cos(__pyx_t_15))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9);
+0421: if lim[0]<lim[1]:
__pyx_t_8 = PyObject_RichCompare(PyList_GET_ITEM(__pyx_v_lim, 0), PyList_GET_ITEM(__pyx_v_lim, 1), Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 421, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 421, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L43; }
+0422: ind[ii,:] = (ind0
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_ii); __Pyx_GIVEREF(__pyx_v_ii); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_ii); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_slice__8); if (unlikely(PyObject_SetItem(__pyx_v_ind, __pyx_t_5, __pyx_t_9) < 0)) __PYX_ERR(0, 422, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0423: & (pts[2,:]>=lim[0])
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyObject_RichCompare(__pyx_t_8, PyList_GET_ITEM(__pyx_v_lim, 0), Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_And(__pyx_v_ind0, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_tuple__32 = PyTuple_Pack(2, __pyx_int_2, __pyx_slice__8); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32);
+0424: & (pts[2,:]<=lim[1]))
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyObject_RichCompare(__pyx_t_9, PyList_GET_ITEM(__pyx_v_lim, 1), Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_And(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
0425: else:
+0426: ind[ii,:] = (ind0
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_ii); __Pyx_GIVEREF(__pyx_v_ii); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_ii); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_slice__8); if (unlikely(PyObject_SetItem(__pyx_v_ind, __pyx_t_9, __pyx_t_8) < 0)) __PYX_ERR(0, 426, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __pyx_L43:;
+0427: & ((pts[2,:]>=lim[0])
/*else*/ {
/* … */
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
/* … */
__pyx_t_5 = PyObject_RichCompare(__pyx_t_9, PyList_GET_ITEM(__pyx_v_lim, 0), Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 427, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
__pyx_t_8 = PyNumber_And(__pyx_v_ind0, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 427, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0428: | (pts[2,:]<=lim[1])))
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = PyObject_RichCompare(__pyx_t_9, PyList_GET_ITEM(__pyx_v_lim, 1), Py_LE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Or(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
0429: else:
+0430: Lim = [Catan2(Csin(Lim[0,0]),Ccos(Lim[0,0])),
/*else*/ {
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__33); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__33); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyFloat_FromDouble(atan2(sin(__pyx_t_15), cos(__pyx_t_16))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
/* … */
__pyx_tuple__33 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__33);
__Pyx_GIVEREF(__pyx_tuple__33);
/* … */
__pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 430, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_8);
PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_8);
__pyx_t_4 = 0;
__pyx_t_8 = 0;
__Pyx_DECREF_SET(__pyx_v_Lim, __pyx_t_9);
__pyx_t_9 = 0;
+0431: Catan2(Csin(Lim[0,1]),Ccos(Lim[0,1]))]
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__34); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__34); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyFloat_FromDouble(atan2(sin(__pyx_t_16), cos(__pyx_t_15))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); /* … */ __pyx_tuple__34 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_1); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 431, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__34); __Pyx_GIVEREF(__pyx_tuple__34);
+0432: if Lim[0]<Lim[1]:
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_Lim, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_Lim, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = PyObject_RichCompare(__pyx_t_9, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 432, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L44; }
+0433: ind = ind0 & (pts[2,:]>=Lim[0]) & (pts[2,:]<=Lim[1])
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_Lim, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyObject_RichCompare(__pyx_t_4, __pyx_t_8, Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_And(__pyx_v_ind0, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_Lim, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_t_9, __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_And(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_ind = __pyx_t_4; __pyx_t_4 = 0;
0434: else :
+0435: ind = ind0 & ((pts[2,:]>=Lim[0]) | (pts[2,:]<=Lim[1]))
/*else*/ {
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_Lim, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_8 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_GE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__32); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_Lim, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Or(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_And(__pyx_v_ind0, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 435, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_ind = __pyx_t_9;
__pyx_t_9 = 0;
}
__pyx_L44:;
}
__pyx_L40:;
}
__pyx_L29:;
0436: else:
+0437: pts = CoordShift(Pts, In=In, Out='(X,Y,Z)')
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_CoordShift); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(__pyx_v_Pts);
__Pyx_GIVEREF(__pyx_v_Pts);
PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_Pts);
__pyx_t_8 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_In, __pyx_v_In) < 0) __PYX_ERR(0, 437, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_Out, __pyx_kp_s_X_Y_Z) < 0) __PYX_ERR(0, 437, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 437, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_v_pts = __pyx_t_5;
__pyx_t_5 = 0;
+0438: ind0 = Path(VPoly.T).contains_points(pts[1:,:].T,
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_Path); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_4); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__35); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_ind0 = __pyx_t_9; __pyx_t_9 = 0; /* … */ __pyx_tuple__35 = PyTuple_Pack(2, __pyx_slice__26, __pyx_slice__8); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35);
+0439: transform=None, radius=0.0)
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 439, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 439, __pyx_L1_error)
+0440: if nLim>1:
__pyx_t_9 = PyObject_RichCompare(__pyx_v_nLim, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 440, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 440, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L45; }
+0441: ind = np.zeros((nLim,Pts.shape[1]),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_9, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_nLim); __Pyx_GIVEREF(__pyx_v_nLim); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_nLim); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 441, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 441, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_ind = __pyx_t_8; __pyx_t_8 = 0;
+0442: for ii in range(0,nLim):
__pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_nLim); __Pyx_GIVEREF(__pyx_v_nLim); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_nLim); __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) { __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 442, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 442, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 442, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif } } else { __pyx_t_9 = __pyx_t_7(__pyx_t_8); if (unlikely(!__pyx_t_9)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 442, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_9); } __Pyx_XDECREF_SET(__pyx_v_ii, __pyx_t_9); __pyx_t_9 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0443: ind[ii,:] = (ind0
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_v_ii); __Pyx_GIVEREF(__pyx_v_ii); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_ii); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_slice__8); if (unlikely(PyObject_SetItem(__pyx_v_ind, __pyx_t_9, __pyx_t_17) < 0)) __PYX_ERR(0, 443, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+0444: & (pts[0,:]>=Lim[ii][0])
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__36); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyObject_RichCompare(__pyx_t_9, __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_And(__pyx_v_ind0, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__36 = PyTuple_Pack(2, __pyx_int_0, __pyx_slice__8); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__36); __Pyx_GIVEREF(__pyx_tuple__36);
+0445: & (pts[0,:]<=Lim[ii][1]))
__pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__36); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_v_ii); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_9, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_t_17, Py_LE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; __pyx_t_17 = PyNumber_And(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
0446: else:
+0447: ind = ind0 & (pts[0,:]>=Lim[0,0]) & (pts[0,:]<=Lim[0,1])
/*else*/ {
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__36); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__33); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_t_17, Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_17 = PyNumber_And(__pyx_v_ind0, __pyx_t_9); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__36); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__34); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_9, __pyx_t_8, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyNumber_And(__pyx_t_17, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 447, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_ind = __pyx_t_8;
__pyx_t_8 = 0;
}
__pyx_L45:;
}
__pyx_L28:;
+0448: return ind
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ind); __pyx_r = __pyx_v_ind; goto __pyx_L0;
0449:
0450:
0451: ########################################################
0452: ########################################################
0453: # Meshing - Common - Linear
0454: ########################################################
0455:
0456:
0457: # Preliminary function to get optimal resolution from input resolution
0458: @cython.cdivision(True)
0459: @cython.wraparound(False)
0460: @cython.boundscheck(False)
+0461: def _Ves_mesh_dlfromL_cython(double[::1] LMinMax, double dL, DL=None, Lim=True,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_15_Ves_mesh_dlfromL_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_14_Ves_mesh_dlfromL_cython[] = " Get the actual reolution from the desired resolution and MinMax\n and limits\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_15_Ves_mesh_dlfromL_cython = {"_Ves_mesh_dlfromL_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_15_Ves_mesh_dlfromL_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_14_Ves_mesh_dlfromL_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_15_Ves_mesh_dlfromL_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_LMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dL;
PyObject *__pyx_v_DL = 0;
PyObject *__pyx_v_Lim = 0;
PyObject *__pyx_v_dLMode = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_mesh_dlfromL_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_LMinMax,&__pyx_n_s_dL,&__pyx_n_s_DL,&__pyx_n_s_Lim,&__pyx_n_s_dLMode,&__pyx_n_s_margin,0};
PyObject* values[6] = {0,0,0,0,0,0};
values[2] = ((PyObject *)Py_None);
values[3] = ((PyObject *)Py_True);
values[4] = ((PyObject *)__pyx_n_s_abs);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LMinMax)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_mesh_dlfromL_cython", 0, 2, 6, 1); __PYX_ERR(0, 461, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DL);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Lim);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dLMode);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[5] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_mesh_dlfromL_cython") < 0)) __PYX_ERR(0, 461, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_LMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_LMinMax.memview)) __PYX_ERR(0, 461, __pyx_L3_error)
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 461, __pyx_L3_error)
__pyx_v_DL = values[2];
__pyx_v_Lim = values[3];
__pyx_v_dLMode = values[4];
if (values[5]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 462, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__37;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_mesh_dlfromL_cython", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 461, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_mesh_dlfromL_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_14_Ves_mesh_dlfromL_cython(__pyx_self, __pyx_v_LMinMax, __pyx_v_dL, __pyx_v_DL, __pyx_v_Lim, __pyx_v_dLMode, __pyx_v_margin);
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_14_Ves_mesh_dlfromL_cython(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_LMinMax, double __pyx_v_dL, PyObject *__pyx_v_DL, PyObject *__pyx_v_Lim, PyObject *__pyx_v_dLMode, double __pyx_v_margin) {
double __pyx_v_N;
double __pyx_v_dLr;
__Pyx_memviewslice __pyx_v_DLc = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_L = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_indL = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_abs0;
double __pyx_v_abs1;
int __pyx_v_nL0;
int __pyx_v_nL1;
int __pyx_v_Nind;
int __pyx_v_ii;
int __pyx_v_jj;
PyObject *__pyx_v_dl = 0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_mesh_dlfromL_cython", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__Pyx_XDECREF(__pyx_t_29);
__PYX_XDEC_MEMVIEW(&__pyx_t_30, 1);
__Pyx_XDECREF(__pyx_t_37);
__Pyx_XDECREF(__pyx_t_38);
__Pyx_AddTraceback("tofu.geom._GG03._Ves_mesh_dlfromL_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__PYX_XDEC_MEMVIEW(&__pyx_v_DLc, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_L, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indL, 1);
__Pyx_XDECREF(__pyx_v_dl);
__PYX_XDEC_MEMVIEW(&__pyx_v_LMinMax, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__172 = PyTuple_Pack(20, __pyx_n_s_LMinMax, __pyx_n_s_dL, __pyx_n_s_DL, __pyx_n_s_Lim, __pyx_n_s_dLMode, __pyx_n_s_margin, __pyx_n_s_N, __pyx_n_s_dLr, __pyx_n_s_DLc, __pyx_n_s_L, __pyx_n_s_indL, __pyx_n_s_abs0, __pyx_n_s_abs1, __pyx_n_s_A, __pyx_n_s_nL0, __pyx_n_s_nL1, __pyx_n_s_Nind, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_dl); if (unlikely(!__pyx_tuple__172)) __PYX_ERR(0, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__172);
__Pyx_GIVEREF(__pyx_tuple__172);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_15_Ves_mesh_dlfromL_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 461, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_mesh_dlfromL_cython, __pyx_t_1) < 0) __PYX_ERR(0, 461, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__173 = (PyObject*)__Pyx_PyCode_New(6, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__172, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_mesh_dlfromL_cython, 461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__173)) __PYX_ERR(0, 461, __pyx_L1_error)
+0462: dLMode='abs', double margin=_VSMALL):
__pyx_k__37 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0463: """ Get the actual reolution from the desired resolution and MinMax
0464: and limits
0465: """
0466: # Get the number of mesh elements in LMinMax
0467: cdef double N
+0468: if dLMode.lower()=='abs':
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dLMode, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_abs, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 468, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L3; }
+0469: N = Cceil((LMinMax[1] - LMinMax[0])/dL)
__pyx_t_5 = 1;
__pyx_t_6 = 0;
__pyx_v_N = ceil((((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_5)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_6)) )))) / __pyx_v_dL));
0470: else:
+0471: N = Cceil(1./dL)
/*else*/ {
__pyx_v_N = ceil((1. / __pyx_v_dL));
}
__pyx_L3:;
0472: # Derive the real (effective) resolution
+0473: cdef double dLr = (LMinMax[1] - LMinMax[0])/N
__pyx_t_7 = 1; __pyx_t_8 = 0; __pyx_v_dLr = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_7)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_8)) )))) / __pyx_v_N);
0474: # Get desired limits if any
0475: cdef double[::1] DLc, L
0476: cdef long [::1] indL
0477: #cdef np.ndarray[double,ndim=1] indL, L
0478: cdef double abs0, abs1, A
0479: cdef int nL0, nL1, Nind, ii, jj
0480: cdef list dl
+0481: if DL is None:
__pyx_t_4 = (__pyx_v_DL == Py_None);
__pyx_t_9 = (__pyx_t_4 != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L4;
}
+0482: DLc = LMinMax
__PYX_INC_MEMVIEW(&__pyx_v_LMinMax, 0);
__pyx_v_DLc = __pyx_v_LMinMax;
0483: else:
+0484: dl = list(DL)
/*else*/ {
__pyx_t_1 = PySequence_List(__pyx_v_DL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 484, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_v_dl = ((PyObject*)__pyx_t_1);
__pyx_t_1 = 0;
+0485: if dl[0] is None:
__pyx_t_9 = (PyList_GET_ITEM(__pyx_v_dl, 0) == Py_None);
__pyx_t_4 = (__pyx_t_9 != 0);
if (__pyx_t_4) {
/* … */
}
+0486: dl[0] = LMinMax[0]
__pyx_t_10 = 0;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_10)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 486, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dl, 0, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 486, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0487: if dl[1] is None:
__pyx_t_4 = (PyList_GET_ITEM(__pyx_v_dl, 1) == Py_None);
__pyx_t_9 = (__pyx_t_4 != 0);
if (__pyx_t_9) {
/* … */
}
+0488: dl[1] = LMinMax[1]
__pyx_t_11 = 1;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_11)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 488, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dl, 1, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 488, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0489: if Lim and dl[0]<=LMinMax[0]:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_Lim); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 489, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_9 = __pyx_t_4; goto __pyx_L8_bool_binop_done; } __pyx_t_12 = 0; __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_12)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(PyList_GET_ITEM(__pyx_v_dl, 0), __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 489, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_t_4; __pyx_L8_bool_binop_done:; if (__pyx_t_9) { /* … */ }
+0490: dl[0] = LMinMax[0]
__pyx_t_13 = 0;
__pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_13)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 490, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dl, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 490, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0491: if Lim and dl[1]>=LMinMax[1]:
__pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_Lim); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 491, __pyx_L1_error) if (__pyx_t_4) { } else { __pyx_t_9 = __pyx_t_4; goto __pyx_L11_bool_binop_done; } __pyx_t_14 = 1; __pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_14)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyObject_RichCompare(PyList_GET_ITEM(__pyx_v_dl, 1), __pyx_t_2, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 491, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __pyx_t_4; __pyx_L11_bool_binop_done:; if (__pyx_t_9) { /* … */ }
+0492: dl[1] = LMinMax[1]
__pyx_t_15 = 1;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_15)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 492, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__Pyx_SetItemInt(__pyx_v_dl, 1, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 492, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0493: DLc = np.array(dl)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_dl) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_dl); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 493, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_DLc = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; } __pyx_L4:;
0494:
0495: # Get the extreme indices of the mesh elements that really need to be
0496: # created within those limits
+0497: abs0 = Cabs(DLc[0]-LMinMax[0])
__pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_v_abs0 = fabs(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_DLc.data) + __pyx_t_17)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_18)) )))));
+0498: if abs0-dLr*Cfloor(abs0/dLr) < margin*dLr:
__pyx_t_9 = (((__pyx_v_abs0 - (__pyx_v_dLr * floor((__pyx_v_abs0 / __pyx_v_dLr)))) < (__pyx_v_margin * __pyx_v_dLr)) != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L13;
}
+0499: nL0 = int(Cround((DLc[0] - LMinMax[0])/dLr))
__pyx_t_19 = 0;
__pyx_t_20 = 0;
__pyx_v_nL0 = ((int)round((((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_DLc.data) + __pyx_t_19)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_20)) )))) / __pyx_v_dLr)));
0500: else:
+0501: nL0 = int(Cfloor((DLc[0] - LMinMax[0])/dLr))
/*else*/ {
__pyx_t_21 = 0;
__pyx_t_22 = 0;
__pyx_v_nL0 = ((int)floor((((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_DLc.data) + __pyx_t_21)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_22)) )))) / __pyx_v_dLr)));
}
__pyx_L13:;
+0502: abs1 = Cabs(DLc[1]-LMinMax[0])
__pyx_t_23 = 1; __pyx_t_24 = 0; __pyx_v_abs1 = fabs(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_DLc.data) + __pyx_t_23)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_24)) )))));
+0503: if abs1-dLr*Cfloor(abs1/dLr) < margin*dLr:
__pyx_t_9 = (((__pyx_v_abs1 - (__pyx_v_dLr * floor((__pyx_v_abs1 / __pyx_v_dLr)))) < (__pyx_v_margin * __pyx_v_dLr)) != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L14;
}
+0504: nL1 = int(Cround((DLc[1] - LMinMax[0])/dLr)-1)
__pyx_t_25 = 1;
__pyx_t_26 = 0;
__pyx_v_nL1 = ((int)(round((((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_DLc.data) + __pyx_t_25)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_26)) )))) / __pyx_v_dLr)) - 1.0));
0505: else:
+0506: nL1 = int(Cfloor((DLc[1] - LMinMax[0])/dLr))
/*else*/ {
__pyx_t_27 = 1;
__pyx_t_28 = 0;
__pyx_v_nL1 = ((int)floor((((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_DLc.data) + __pyx_t_27)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_28)) )))) / __pyx_v_dLr)));
}
__pyx_L14:;
0507: # Get the corresponding indices
+0508: Nind = nL1 + 1 - nL0
__pyx_v_Nind = ((__pyx_v_nL1 + 1) - __pyx_v_nL0);
+0509: indL = np.empty((Nind,),dtype=int)#np.linspace(nL0,nL1,Nind,endpoint=True)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Nind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 509, __pyx_L1_error) __pyx_t_29 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_30 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_29, PyBUF_WRITABLE); if (unlikely(!__pyx_t_30.memview)) __PYX_ERR(0, 509, __pyx_L1_error) __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __pyx_v_indL = __pyx_t_30; __pyx_t_30.memview = NULL; __pyx_t_30.data = NULL;
+0510: L = np.empty((Nind,))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_Nind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_29 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_29, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 510, __pyx_L1_error) __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __pyx_v_L = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL;
+0511: for ii in range(0, Nind):
__pyx_t_31 = __pyx_v_Nind;
__pyx_t_32 = __pyx_t_31;
for (__pyx_t_33 = 0; __pyx_t_33 < __pyx_t_32; __pyx_t_33+=1) {
__pyx_v_ii = __pyx_t_33;
+0512: jj = nL0 + ii
__pyx_v_jj = (__pyx_v_nL0 + __pyx_v_ii);
+0513: indL[ii] = jj
__pyx_t_34 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_indL.data) + __pyx_t_34)) )) = __pyx_v_jj;
+0514: L[ii] = LMinMax[0] + (0.5 + (<double>jj))*dLr
__pyx_t_35 = 0;
__pyx_t_36 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_36)) )) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_35)) ))) + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dLr));
}
+0515: return np.asarray(L), dLr, np.asarray(indL), <long>N
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_L, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_29 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_29); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dLr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_37); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_indL, 1, (PyObject *(*)(char *)) __pyx_memview_get_long, (int (*)(char *, PyObject *)) __pyx_memview_set_long, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_38 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) { __pyx_t_38 = PyMethod_GET_SELF(__pyx_t_37); if (likely(__pyx_t_38)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37); __Pyx_INCREF(__pyx_t_38); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_37, function); } } __pyx_t_1 = (__pyx_t_38) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_38, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_t_2); __Pyx_XDECREF(__pyx_t_38); __pyx_t_38 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0; __pyx_t_37 = __Pyx_PyInt_From_long(((long)__pyx_v_N)); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_37); __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_29); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_29); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_37); __pyx_t_29 = 0; __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_37 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0516:
0517:
0518: ########################################################
0519: ########################################################
0520: # Meshing - Common - Polygon face
0521: ########################################################
0522:
0523: @cython.cdivision(True)
0524: @cython.wraparound(False)
0525: @cython.boundscheck(False)
+0526: def _Ves_meshCross_FromD(double[::1] MinMax1, double[::1] MinMax2, double d1,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_17_Ves_meshCross_FromD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_17_Ves_meshCross_FromD = {"_Ves_meshCross_FromD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_17_Ves_meshCross_FromD, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_17_Ves_meshCross_FromD(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_MinMax1 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_MinMax2 = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_d1;
double __pyx_v_d2;
PyObject *__pyx_v_D1 = 0;
PyObject *__pyx_v_D2 = 0;
PyObject *__pyx_v_dSMode = 0;
PyObject *__pyx_v_VPoly = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_meshCross_FromD (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_MinMax1,&__pyx_n_s_MinMax2,&__pyx_n_s_d1,&__pyx_n_s_d2,&__pyx_n_s_D1,&__pyx_n_s_D2,&__pyx_n_s_dSMode,&__pyx_n_s_VPoly,&__pyx_n_s_margin,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_16_Ves_meshCross_FromD(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_MinMax1, __Pyx_memviewslice __pyx_v_MinMax2, double __pyx_v_d1, double __pyx_v_d2, PyObject *__pyx_v_D1, PyObject *__pyx_v_D2, PyObject *__pyx_v_dSMode, PyObject *__pyx_v_VPoly, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_X1 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_X2 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ind1 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ind2 = { 0, 0, { 0 }, { 0 }, { 0 } };
CYTHON_UNUSED int __pyx_v_N1;
CYTHON_UNUSED int __pyx_v_N2;
int __pyx_v_n1;
int __pyx_v_n2;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_nn;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_dS = 0;
PyArrayObject *__pyx_v_ind = 0;
PyObject *__pyx_v_d1r = NULL;
PyObject *__pyx_v_d2r = NULL;
PyObject *__pyx_v_iin = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_meshCross_FromD", 0);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_meshCross_FromD", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_X1, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_X2, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ind1, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ind2, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_d1r);
__Pyx_XDECREF(__pyx_v_d2r);
__Pyx_XDECREF(__pyx_v_iin);
__PYX_XDEC_MEMVIEW(&__pyx_v_MinMax1, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_MinMax2, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__174 = PyTuple_Pack(28, __pyx_n_s_MinMax1, __pyx_n_s_MinMax2, __pyx_n_s_d1, __pyx_n_s_d2, __pyx_n_s_D1, __pyx_n_s_D2, __pyx_n_s_dSMode, __pyx_n_s_VPoly, __pyx_n_s_margin, __pyx_n_s_X1, __pyx_n_s_X2, __pyx_n_s_dX1, __pyx_n_s_dX2, __pyx_n_s_ind1, __pyx_n_s_ind2, __pyx_n_s_N1, __pyx_n_s_N2, __pyx_n_s_n1, __pyx_n_s_n2, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_nn, __pyx_n_s_Pts, __pyx_n_s_dS, __pyx_n_s_ind, __pyx_n_s_d1r, __pyx_n_s_d2r, __pyx_n_s_iin); if (unlikely(!__pyx_tuple__174)) __PYX_ERR(0, 526, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__174);
__Pyx_GIVEREF(__pyx_tuple__174);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_17_Ves_meshCross_FromD, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 526, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_meshCross_FromD, __pyx_t_1) < 0) __PYX_ERR(0, 526, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(9, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__174, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_meshCross_FromD, 526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(0, 526, __pyx_L1_error)
+0527: double d2, D1=None, D2=None,str dSMode='abs',
values[4] = ((PyObject *)Py_None);
values[5] = ((PyObject *)Py_None);
values[6] = ((PyObject*)__pyx_n_s_abs);
+0528: VPoly=None, double margin=_VSMALL):
values[7] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_MinMax1)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_MinMax2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromD", 0, 4, 9, 1); __PYX_ERR(0, 526, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_d1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromD", 0, 4, 9, 2); __PYX_ERR(0, 526, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_d2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromD", 0, 4, 9, 3); __PYX_ERR(0, 526, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D1);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D2);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dSMode);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[8] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_meshCross_FromD") < 0)) __PYX_ERR(0, 526, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_MinMax1 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_MinMax1.memview)) __PYX_ERR(0, 526, __pyx_L3_error)
__pyx_v_MinMax2 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_MinMax2.memview)) __PYX_ERR(0, 526, __pyx_L3_error)
__pyx_v_d1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_d1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 526, __pyx_L3_error)
__pyx_v_d2 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_d2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 527, __pyx_L3_error)
__pyx_v_D1 = values[4];
__pyx_v_D2 = values[5];
__pyx_v_dSMode = ((PyObject*)values[6]);
__pyx_v_VPoly = values[7];
if (values[8]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 528, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__38;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromD", 0, 4, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 526, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_meshCross_FromD", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dSMode), (&PyString_Type), 1, "dSMode", 1))) __PYX_ERR(0, 527, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_16_Ves_meshCross_FromD(__pyx_self, __pyx_v_MinMax1, __pyx_v_MinMax2, __pyx_v_d1, __pyx_v_d2, __pyx_v_D1, __pyx_v_D2, __pyx_v_dSMode, __pyx_v_VPoly, __pyx_v_margin);
/* … */
__pyx_k__38 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0529: cdef double[::1] X1, X2
0530: cdef double dX1, dX2
0531: cdef long[::1] ind1, ind2
0532: cdef int N1, N2, n1, n2, ii, jj, nn
0533: cdef np.ndarray[double,ndim=2] Pts
0534: cdef np.ndarray[double,ndim=1] dS
0535: cdef np.ndarray[long,ndim=1] ind
0536:
+0537: X1, d1r, ind1, N1 = _Ves_mesh_dlfromL_cython(MinMax1, d1, D1, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_MinMax1, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_d1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(__pyx_v_D1); __Pyx_GIVEREF(__pyx_v_D1); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_D1); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 537, __pyx_L1_error) /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 537, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 537, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 537, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_X1 = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_d1r = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_ind1 = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_N1 = __pyx_t_10;
+0538: dLMode=dSMode, margin=margin)
if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dLMode, __pyx_v_dSMode) < 0) __PYX_ERR(0, 537, __pyx_L1_error) __pyx_t_2 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_margin, __pyx_t_2) < 0) __PYX_ERR(0, 537, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0539: X2, d2r, ind2, N2 = _Ves_mesh_dlfromL_cython(MinMax2, d2, D2, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_MinMax2, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_d2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_D2); __Pyx_GIVEREF(__pyx_v_D2); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_D2); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 539, __pyx_L1_error) /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 539, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 539, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 539, __pyx_L1_error) __pyx_L6_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_X2 = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_d2r = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_ind2 = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_N2 = __pyx_t_10;
+0540: dLMode=dSMode, margin=margin)
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dLMode, __pyx_v_dSMode) < 0) __PYX_ERR(0, 539, __pyx_L1_error) __pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 539, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0541: n1, n2 = len(X1), len(X2)
__pyx_t_11 = __Pyx_MemoryView_Len(__pyx_v_X1); __pyx_t_12 = __Pyx_MemoryView_Len(__pyx_v_X2); __pyx_v_n1 = __pyx_t_11; __pyx_v_n2 = __pyx_t_12;
0542:
+0543: Pts = np.empty((2,n1*n2))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_n1 * __pyx_v_n2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 543, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __pyx_t_14 = __pyx_t_15 = __pyx_t_16 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 543, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
+0544: dS = d1r*d2r*np.ones((n1*n2,))
__pyx_t_5 = PyNumber_Multiply(__pyx_v_d1r, __pyx_v_d2r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_n1 * __pyx_v_n2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 544, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 544, __pyx_L1_error) __pyx_t_17 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_16, &__pyx_t_15, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_16, __pyx_t_15, __pyx_t_14); } __pyx_t_16 = __pyx_t_15 = __pyx_t_14 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 544, __pyx_L1_error) } __pyx_t_17 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+0545: ind = np.empty((n1*n2,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_n1 * __pyx_v_n2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 545, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 545, __pyx_L1_error) __pyx_t_18 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __pyx_t_14 = __pyx_t_15 = __pyx_t_16 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 545, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+0546: for ii in range(0,n2):
__pyx_t_10 = __pyx_v_n2;
__pyx_t_19 = __pyx_t_10;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_ii = __pyx_t_20;
+0547: for jj in range(0,n1):
__pyx_t_21 = __pyx_v_n1;
__pyx_t_22 = __pyx_t_21;
for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
__pyx_v_jj = __pyx_t_23;
+0548: nn = jj+n1*ii
__pyx_v_nn = (__pyx_v_jj + (__pyx_v_n1 * __pyx_v_ii));
+0549: Pts[0,nn] = X1[jj]
__pyx_t_24 = __pyx_v_jj;
__pyx_t_25 = 0;
__pyx_t_26 = __pyx_v_nn;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_25, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_26, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_X1.data) + __pyx_t_24)) )));
+0550: Pts[1,nn] = X2[ii]
__pyx_t_27 = __pyx_v_ii;
__pyx_t_28 = 1;
__pyx_t_29 = __pyx_v_nn;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_28, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_29, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_X2.data) + __pyx_t_27)) )));
+0551: ind[nn] = ind1[jj] + n1*ind2[ii]
__pyx_t_30 = __pyx_v_jj;
__pyx_t_31 = __pyx_v_ii;
__pyx_t_32 = __pyx_v_nn;
*__Pyx_BufPtrStrided1d(long *, __pyx_pybuffernd_ind.rcbuffer->pybuffer.buf, __pyx_t_32, __pyx_pybuffernd_ind.diminfo[0].strides) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind1.data) + __pyx_t_30)) ))) + (__pyx_v_n1 * (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind2.data) + __pyx_t_31)) )))));
}
}
+0552: if VPoly is not None:
__pyx_t_33 = (__pyx_v_VPoly != Py_None);
__pyx_t_34 = (__pyx_t_33 != 0);
if (__pyx_t_34) {
/* … */
}
+0553: iin = Path(VPoly.T).contains_points(Pts.T, transform=None, radius=0.0)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_Pts), __pyx_n_s_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 553, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 553, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_iin = __pyx_t_2; __pyx_t_2 = 0;
+0554: if np.sum(iin)==1:
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_v_iin) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_iin); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_34 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 554, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_34) { /* … */ goto __pyx_L12; }
+0555: Pts, dS, ind = Pts[:,iin].reshape((2,1)), dS[iin], ind[iin]
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_iin); __Pyx_GIVEREF(__pyx_v_iin); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_iin); __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reshape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_tuple__39) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_tuple__39); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 555, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dS), __pyx_v_iin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 555, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_iin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 555, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_16, &__pyx_t_15, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_16, __pyx_t_15, __pyx_t_14); } __pyx_t_16 = __pyx_t_15 = __pyx_t_14 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 555, __pyx_L1_error) } __pyx_t_13 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_t_17 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_15, __pyx_t_16); } __pyx_t_14 = __pyx_t_15 = __pyx_t_16 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 555, __pyx_L1_error) } __pyx_t_17 = 0; __Pyx_DECREF_SET(__pyx_v_dS, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_16, &__pyx_t_15, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_16, __pyx_t_15, __pyx_t_14); } __pyx_t_16 = __pyx_t_15 = __pyx_t_14 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 555, __pyx_L1_error) } __pyx_t_18 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; /* … */ __pyx_tuple__39 = PyTuple_Pack(2, __pyx_int_2, __pyx_int_1); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39);
0556: else:
+0557: Pts, dS, ind = Pts[:,iin], dS[iin], ind[iin]
/*else*/ {
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 557, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_slice__8);
__Pyx_GIVEREF(__pyx_slice__8);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_slice__8);
__Pyx_INCREF(__pyx_v_iin);
__Pyx_GIVEREF(__pyx_v_iin);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_iin);
__pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 557, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 557, __pyx_L1_error)
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dS), __pyx_v_iin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 557, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 557, __pyx_L1_error)
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_iin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 557, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 557, __pyx_L1_error)
__pyx_t_13 = ((PyArrayObject *)__pyx_t_2);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_10 < 0)) {
PyErr_Fetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
}
__pyx_t_14 = __pyx_t_15 = __pyx_t_16 = 0;
}
__pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 557, __pyx_L1_error)
}
__pyx_t_13 = 0;
__Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_2));
__pyx_t_2 = 0;
__pyx_t_17 = ((PyArrayObject *)__pyx_t_1);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_17, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
if (unlikely(__pyx_t_10 < 0)) {
PyErr_Fetch(&__pyx_t_16, &__pyx_t_15, &__pyx_t_14);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_16, __pyx_t_15, __pyx_t_14);
}
__pyx_t_16 = __pyx_t_15 = __pyx_t_14 = 0;
}
__pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0];
if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 557, __pyx_L1_error)
}
__pyx_t_17 = 0;
__Pyx_DECREF_SET(__pyx_v_dS, ((PyArrayObject *)__pyx_t_1));
__pyx_t_1 = 0;
__pyx_t_18 = ((PyArrayObject *)__pyx_t_3);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
if (unlikely(__pyx_t_10 < 0)) {
PyErr_Fetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
}
__pyx_t_14 = __pyx_t_15 = __pyx_t_16 = 0;
}
__pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0];
if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 557, __pyx_L1_error)
}
__pyx_t_18 = 0;
__Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_3));
__pyx_t_3 = 0;
}
__pyx_L12:;
+0558: return Pts, dS, ind, d1r, d2r
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 558, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind)); PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_ind)); __Pyx_INCREF(__pyx_v_d1r); __Pyx_GIVEREF(__pyx_v_d1r); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_d1r); __Pyx_INCREF(__pyx_v_d2r); __Pyx_GIVEREF(__pyx_v_d2r); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_d2r); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0559:
0560:
0561: @cython.cdivision(True)
0562: @cython.wraparound(False)
0563: @cython.boundscheck(False)
+0564: def _Ves_meshCross_FromInd(double[::1] MinMax1, double[::1] MinMax2, double d1,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_19_Ves_meshCross_FromInd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_19_Ves_meshCross_FromInd = {"_Ves_meshCross_FromInd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_19_Ves_meshCross_FromInd, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_19_Ves_meshCross_FromInd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_MinMax1 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_MinMax2 = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_d1;
double __pyx_v_d2;
__Pyx_memviewslice __pyx_v_ind = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_dSMode = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_meshCross_FromInd (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_MinMax1,&__pyx_n_s_MinMax2,&__pyx_n_s_d1,&__pyx_n_s_d2,&__pyx_n_s_ind,&__pyx_n_s_dSMode,&__pyx_n_s_margin,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
values[5] = ((PyObject*)__pyx_n_s_abs);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_MinMax1)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_MinMax2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromInd", 0, 5, 7, 1); __PYX_ERR(0, 564, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_d1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromInd", 0, 5, 7, 2); __PYX_ERR(0, 564, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_d2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromInd", 0, 5, 7, 3); __PYX_ERR(0, 564, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromInd", 0, 5, 7, 4); __PYX_ERR(0, 564, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dSMode);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_meshCross_FromInd") < 0)) __PYX_ERR(0, 564, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_MinMax1 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_MinMax1.memview)) __PYX_ERR(0, 564, __pyx_L3_error)
__pyx_v_MinMax2 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_MinMax2.memview)) __PYX_ERR(0, 564, __pyx_L3_error)
__pyx_v_d1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_d1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 564, __pyx_L3_error)
__pyx_v_d2 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_d2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 565, __pyx_L3_error)
__pyx_v_ind = __Pyx_PyObject_to_MemoryviewSlice_dc_long(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ind.memview)) __PYX_ERR(0, 565, __pyx_L3_error)
__pyx_v_dSMode = ((PyObject*)values[5]);
if (values[6]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__40;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_meshCross_FromInd", 0, 5, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 564, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_meshCross_FromInd", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dSMode), (&PyString_Type), 1, "dSMode", 1))) __PYX_ERR(0, 565, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_18_Ves_meshCross_FromInd(__pyx_self, __pyx_v_MinMax1, __pyx_v_MinMax2, __pyx_v_d1, __pyx_v_d2, __pyx_v_ind, __pyx_v_dSMode, __pyx_v_margin);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_18_Ves_meshCross_FromInd(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_MinMax1, __Pyx_memviewslice __pyx_v_MinMax2, double __pyx_v_d1, double __pyx_v_d2, __Pyx_memviewslice __pyx_v_ind, PyObject *__pyx_v_dSMode, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_X1 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_X2 = { 0, 0, { 0 }, { 0 }, { 0 } };
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_bla = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_N1;
CYTHON_UNUSED int __pyx_v_N2;
int __pyx_v_NP;
int __pyx_v_ii;
int __pyx_v_i1;
int __pyx_v_i2;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_dS = 0;
PyObject *__pyx_v_d1r = NULL;
PyObject *__pyx_v_d2r = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_meshCross_FromInd", 0);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_meshCross_FromInd", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_X1, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_X2, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_bla, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF(__pyx_v_d1r);
__Pyx_XDECREF(__pyx_v_d2r);
__PYX_XDEC_MEMVIEW(&__pyx_v_MinMax1, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_MinMax2, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ind, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__176 = PyTuple_Pack(22, __pyx_n_s_MinMax1, __pyx_n_s_MinMax2, __pyx_n_s_d1, __pyx_n_s_d2, __pyx_n_s_ind, __pyx_n_s_dSMode, __pyx_n_s_margin, __pyx_n_s_X1, __pyx_n_s_X2, __pyx_n_s_dX1, __pyx_n_s_dX2, __pyx_n_s_bla, __pyx_n_s_N1, __pyx_n_s_N2, __pyx_n_s_NP, __pyx_n_s_ii, __pyx_n_s_i1, __pyx_n_s_i2, __pyx_n_s_Pts, __pyx_n_s_dS, __pyx_n_s_d1r, __pyx_n_s_d2r); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(0, 564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__176);
__Pyx_GIVEREF(__pyx_tuple__176);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_19_Ves_meshCross_FromInd, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_meshCross_FromInd, __pyx_t_1) < 0) __PYX_ERR(0, 564, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(7, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_meshCross_FromInd, 564, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(0, 564, __pyx_L1_error)
0565: double d2, long[::1] ind, str dSMode='abs',
+0566: double margin=_VSMALL):
__pyx_k__40 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0567: cdef double[::1] X1, X2
0568: cdef double dX1, dX2
0569: cdef long[::1] bla
+0570: cdef int N1, N2, NP=ind.size, ii, i1, i2
__pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_ind, 1, (PyObject *(*)(char *)) __pyx_memview_get_long, (int (*)(char *, PyObject *)) __pyx_memview_set_long, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 570, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_NP = __pyx_t_3;
0571: cdef np.ndarray[double,ndim=2] Pts
0572: cdef np.ndarray[double,ndim=1] dS
0573:
+0574: X1, d1r, bla, N1 = _Ves_mesh_dlfromL_cython(MinMax1, d1, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_MinMax1, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_d1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None); __pyx_t_1 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 574, __pyx_L1_error) /* … */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 574, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_6 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_2,&__pyx_t_6}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_2,&__pyx_t_6}; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 4) < 0) __PYX_ERR(0, 574, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 574, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_X1 = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_d1r = __pyx_t_5; __pyx_t_5 = 0; __pyx_v_bla = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_v_N1 = __pyx_t_3;
+0575: dLMode=dSMode, margin=margin)
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dLMode, __pyx_v_dSMode) < 0) __PYX_ERR(0, 574, __pyx_L1_error) __pyx_t_1 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_margin, __pyx_t_1) < 0) __PYX_ERR(0, 574, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0576: X2, d2r, bla, N2 = _Ves_mesh_dlfromL_cython(MinMax2, d2, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_MinMax2, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_d2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_5, 2, Py_None); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 576, __pyx_L1_error) /* … */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { PyObject* sequence = __pyx_t_6; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 576, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_4 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_5,&__pyx_t_1,&__pyx_t_4}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_5,&__pyx_t_1,&__pyx_t_4}; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 4) < 0) __PYX_ERR(0, 576, __pyx_L1_error) __pyx_t_8 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 576, __pyx_L1_error) __pyx_L6_unpacking_done:; } __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_X2 = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_d2r = __pyx_t_5; __pyx_t_5 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_bla, 1); __pyx_v_bla = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_v_N2 = __pyx_t_3;
+0577: dLMode=dSMode, margin=margin)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dLMode, __pyx_v_dSMode) < 0) __PYX_ERR(0, 576, __pyx_L1_error) __pyx_t_6 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 577, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_6) < 0) __PYX_ERR(0, 576, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
0578:
+0579: Pts = np.empty((2,NP))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 579, __pyx_L1_error) __pyx_t_11 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_3 < 0)) { PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14); } __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 579, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
+0580: dS = d1r*d2r*np.ones((NP,))
__pyx_t_6 = PyNumber_Multiply(__pyx_v_d1r, __pyx_v_d2r); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 580, __pyx_L1_error) __pyx_t_15 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_3 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_3 < 0)) { PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12); } __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 580, __pyx_L1_error) } __pyx_t_15 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+0581: for ii in range(0,NP):
__pyx_t_3 = __pyx_v_NP;
__pyx_t_16 = __pyx_t_3;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_ii = __pyx_t_17;
+0582: i2 = ind[ii] // N1
__pyx_t_18 = __pyx_v_ii;
__pyx_v_i2 = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_18)) ))) / __pyx_v_N1);
+0583: i1 = ind[ii]-i2*N1
__pyx_t_19 = __pyx_v_ii;
__pyx_v_i1 = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_19)) ))) - (__pyx_v_i2 * __pyx_v_N1));
+0584: Pts[0,ii] = X1[i1]
__pyx_t_20 = __pyx_v_i1;
__pyx_t_21 = 0;
__pyx_t_22 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_22, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_X1.data) + __pyx_t_20)) )));
+0585: Pts[1,ii] = X2[i2]
__pyx_t_23 = __pyx_v_i2;
__pyx_t_24 = 1;
__pyx_t_25 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_X2.data) + __pyx_t_23)) )));
}
+0586: return Pts, dS, d1r, d2r
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(__pyx_v_d1r); __Pyx_GIVEREF(__pyx_v_d1r); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_d1r); __Pyx_INCREF(__pyx_v_d2r); __Pyx_GIVEREF(__pyx_v_d2r); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_d2r); __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
0587:
0588:
0589:
0590: @cython.cdivision(True)
0591: @cython.wraparound(False)
0592: @cython.boundscheck(False)
+0593: def _Ves_Smesh_Cross(double[:,::1] VPoly, double dL, str dLMode='abs', D1=None,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_21_Ves_Smesh_Cross(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_21_Ves_Smesh_Cross = {"_Ves_Smesh_Cross", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_21_Ves_Smesh_Cross, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_21_Ves_Smesh_Cross(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dL;
PyObject *__pyx_v_dLMode = 0;
PyObject *__pyx_v_D1 = 0;
PyObject *__pyx_v_D2 = 0;
double __pyx_v_margin;
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Cross (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_VPoly,&__pyx_n_s_dL,&__pyx_n_s_dLMode,&__pyx_n_s_D1,&__pyx_n_s_D2,&__pyx_n_s_margin,&__pyx_n_s_DIn,&__pyx_n_s_VIn,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
values[2] = ((PyObject*)__pyx_n_s_abs);
values[3] = ((PyObject *)Py_None);
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_20_Ves_Smesh_Cross(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_VPoly, double __pyx_v_dL, PyObject *__pyx_v_dLMode, PyObject *__pyx_v_D1, PyObject *__pyx_v_D2, double __pyx_v_margin, double __pyx_v_DIn, PyObject *__pyx_v_VIn) {
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_nn;
int __pyx_v_NP;
__Pyx_memviewslice __pyx_v_LMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_L = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_v0;
double __pyx_v_v1;
double __pyx_v_dlr;
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_indL = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_N = 0;
PyArrayObject *__pyx_v_ind = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_PtsCross = 0;
PyObject *__pyx_v_LPtsCross = 0;
PyObject *__pyx_v_LdLr = 0;
PyObject *__pyx_v_Lind = 0;
PyObject *__pyx_v_LRref = 0;
PyObject *__pyx_v_VPolybis = 0;
PyObject *__pyx_v_indin = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_N;
__Pyx_Buffer __pyx_pybuffer_N;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsCross;
__Pyx_Buffer __pyx_pybuffer_PtsCross;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Cross", 0);
__pyx_pybuffer_N.pybuffer.buf = NULL;
__pyx_pybuffer_N.refcount = 0;
__pyx_pybuffernd_N.data = NULL;
__pyx_pybuffernd_N.rcbuffer = &__pyx_pybuffer_N;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_PtsCross.pybuffer.buf = NULL;
__pyx_pybuffer_PtsCross.refcount = 0;
__pyx_pybuffernd_PtsCross.data = NULL;
__pyx_pybuffernd_PtsCross.rcbuffer = &__pyx_pybuffer_PtsCross;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__PYX_XDEC_MEMVIEW(&__pyx_t_5, 1);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_XDECREF(__pyx_t_26);
__PYX_XDEC_MEMVIEW(&__pyx_t_28, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_N.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Cross", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_N.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_LMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_L, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indL, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_N);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsCross);
__Pyx_XDECREF(__pyx_v_LPtsCross);
__Pyx_XDECREF(__pyx_v_LdLr);
__Pyx_XDECREF(__pyx_v_Lind);
__Pyx_XDECREF(__pyx_v_LRref);
__Pyx_XDECREF(__pyx_v_VPolybis);
__Pyx_XDECREF(__pyx_v_indin);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__178 = PyTuple_Pack(29, __pyx_n_s_VPoly, __pyx_n_s_dL, __pyx_n_s_dLMode, __pyx_n_s_D1, __pyx_n_s_D2, __pyx_n_s_margin, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_nn, __pyx_n_s_NP, __pyx_n_s_LMinMax, __pyx_n_s_L, __pyx_n_s_v0, __pyx_n_s_v1, __pyx_n_s_dlr, __pyx_n_s_indL, __pyx_n_s_N, __pyx_n_s_ind, __pyx_n_s_dLr, __pyx_n_s_Rref, __pyx_n_s_PtsCross, __pyx_n_s_LPtsCross, __pyx_n_s_LdLr, __pyx_n_s_Lind, __pyx_n_s_LRref, __pyx_n_s_VPolybis, __pyx_n_s_indin); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(0, 593, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__178);
__Pyx_GIVEREF(__pyx_tuple__178);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_21_Ves_Smesh_Cross, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 593, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_Cross, __pyx_t_1) < 0) __PYX_ERR(0, 593, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(8, 0, 29, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_Cross, 593, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(0, 593, __pyx_L1_error)
+0594: D2=None, double margin=_VSMALL, double DIn=0., VIn=None):
values[4] = ((PyObject *)Py_None);
values[7] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Cross", 0, 2, 8, 1); __PYX_ERR(0, 593, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dLMode);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D1);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D2);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_Cross") < 0)) __PYX_ERR(0, 593, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_v_dLMode = ((PyObject*)values[2]);
__pyx_v_D1 = values[3];
__pyx_v_D2 = values[4];
if (values[5]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__41;
}
if (values[6]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[7];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Cross", 0, 2, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 593, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Cross", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dLMode), (&PyString_Type), 1, "dLMode", 1))) __PYX_ERR(0, 593, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_20_Ves_Smesh_Cross(__pyx_self, __pyx_v_VPoly, __pyx_v_dL, __pyx_v_dLMode, __pyx_v_D1, __pyx_v_D2, __pyx_v_margin, __pyx_v_DIn, __pyx_v_VIn);
/* … */
__pyx_k__41 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+0595: cdef int ii, jj, nn=0, NP=VPoly.shape[1]
__pyx_v_nn = 0; __pyx_v_NP = (__pyx_v_VPoly.shape[1]);
0596: cdef double[::1] LMinMax, L
0597: cdef double v0, v1, dlr
0598: cdef long[::1] indL
0599: cdef np.ndarray[long,ndim=1] N, ind
0600: cdef np.ndarray[double,ndim=1] dLr, Rref
0601: cdef np.ndarray[double,ndim=2] PtsCross
+0602: cdef list LPtsCross=[], LdLr=[], Lind=[], LRref=[], VPolybis=[]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LPtsCross = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LdLr = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_Lind = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LRref = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_VPolybis = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
0603:
+0604: LMinMax = np.array([0.,1.],dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_float_0_); __Pyx_GIVEREF(__pyx_float_0_); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_); __Pyx_INCREF(__pyx_float_1_); __Pyx_GIVEREF(__pyx_float_1_); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_1_); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 604, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 604, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_LMinMax = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+0605: N = np.empty((NP-1,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_NP - 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 605, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 605, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_N.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_N.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_N.rcbuffer->pybuffer, (PyObject*)__pyx_v_N, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0; } __pyx_pybuffernd_N.diminfo[0].strides = __pyx_pybuffernd_N.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_N.diminfo[0].shape = __pyx_pybuffernd_N.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 605, __pyx_L1_error) } __pyx_t_6 = 0; __pyx_v_N = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+0606: if DIn==0.:
__pyx_t_11 = ((__pyx_v_DIn == 0.) != 0);
if (__pyx_t_11) {
/* … */
goto __pyx_L3;
}
+0607: for ii in range(0,NP-1):
__pyx_t_12 = (__pyx_v_NP - 1);
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_13; __pyx_t_7+=1) {
__pyx_v_ii = __pyx_t_7;
+0608: v0, v1 = VPoly[0,ii+1]-VPoly[0,ii], VPoly[1,ii+1]-VPoly[1,ii]
__pyx_t_14 = 0;
__pyx_t_15 = (__pyx_v_ii + 1);
__pyx_t_16 = 0;
__pyx_t_17 = __pyx_v_ii;
__pyx_t_18 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_14 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_15)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_16 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_17)) ))));
__pyx_t_19 = 1;
__pyx_t_20 = (__pyx_v_ii + 1);
__pyx_t_21 = 1;
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_19 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_20)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_21 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_22)) ))));
__pyx_v_v0 = __pyx_t_18;
__pyx_v_v1 = __pyx_t_23;
+0609: LMinMax[1] = Csqrt(v0**2 + v1**2)
__pyx_t_24 = 1;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_24)) )) = sqrt((pow(__pyx_v_v0, 2.0) + pow(__pyx_v_v1, 2.0)));
+0610: L, dlr, indL, N[ii] = _Ves_mesh_dlfromL_cython(LMinMax, dL,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_LMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 610, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_25 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_25 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_25); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_1,&__pyx_t_2,&__pyx_t_25}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_1,&__pyx_t_2,&__pyx_t_25}; __pyx_t_26 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_27 = Py_TYPE(__pyx_t_26)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_27(__pyx_t_26); if (unlikely(!item)) goto __pyx_L6_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_27(__pyx_t_26), 4) < 0) __PYX_ERR(0, 610, __pyx_L1_error) __pyx_t_27 = NULL; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; goto __pyx_L7_unpacking_done; __pyx_L6_unpacking_failed:; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_27 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 610, __pyx_L1_error) __pyx_L7_unpacking_done:; } __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_28 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_28.memview)) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_29 = __Pyx_PyInt_As_long(__pyx_t_25); if (unlikely((__pyx_t_29 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 610, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_L, 1); __pyx_v_L = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; __pyx_v_dlr = __pyx_t_23; __PYX_XDEC_MEMVIEW(&__pyx_v_indL, 1); __pyx_v_indL = __pyx_t_28; __pyx_t_28.memview = NULL; __pyx_t_28.data = NULL; __pyx_t_30 = __pyx_v_ii; *__Pyx_BufPtrStrided1d(long *, __pyx_pybuffernd_N.rcbuffer->pybuffer.buf, __pyx_t_30, __pyx_pybuffernd_N.diminfo[0].strides) = __pyx_t_29;
+0611: dLMode=dLMode,
__pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dLMode, __pyx_v_dLMode) < 0) __PYX_ERR(0, 611, __pyx_L1_error)
+0612: DL=None, Lim=True,
if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 611, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 611, __pyx_L1_error)
+0613: margin=margin)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 611, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0614: VPolybis.append((VPoly[0,ii],VPoly[1,ii]))
__pyx_t_31 = 0;
__pyx_t_32 = __pyx_v_ii;
__pyx_t_3 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_31 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_32)) )))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_33 = 1;
__pyx_t_34 = __pyx_v_ii;
__pyx_t_25 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_33 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_34)) )))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 614, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_25);
__pyx_t_3 = 0;
__pyx_t_25 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_VPolybis, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 614, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0615: v0, v1 = v0/LMinMax[1], v1/LMinMax[1]
__pyx_t_36 = 1;
__pyx_t_23 = (__pyx_v_v0 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_36)) ))));
__pyx_t_37 = 1;
__pyx_t_18 = (__pyx_v_v1 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_37)) ))));
__pyx_v_v0 = __pyx_t_23;
__pyx_v_v1 = __pyx_t_18;
+0616: for jj in range(0,N[ii]):
__pyx_t_38 = __pyx_v_ii;
__pyx_t_29 = (*__Pyx_BufPtrStrided1d(long *, __pyx_pybuffernd_N.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_N.diminfo[0].strides));
__pyx_t_39 = __pyx_t_29;
for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
__pyx_v_jj = __pyx_t_40;
+0617: LdLr.append(dlr)
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_dlr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_35 = __Pyx_PyList_Append(__pyx_v_LdLr, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 617, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0618: LRref.append(VPoly[0,ii] + L[jj]*v0)
__pyx_t_41 = 0;
__pyx_t_42 = __pyx_v_ii;
__pyx_t_43 = __pyx_v_jj;
__pyx_t_2 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_41 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_42)) ))) + ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_43)) ))) * __pyx_v_v0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 618, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_LRref, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 618, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0619: LPtsCross.append((VPoly[0,ii] + L[jj]*v0,
__pyx_t_44 = 0;
__pyx_t_45 = __pyx_v_ii;
__pyx_t_46 = __pyx_v_jj;
__pyx_t_2 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_44 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_45)) ))) + ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_46)) ))) * __pyx_v_v0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_25);
__pyx_t_2 = 0;
__pyx_t_25 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_LPtsCross, __pyx_t_3); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 619, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0620: VPoly[1,ii] + L[jj]*v1))
__pyx_t_47 = 1;
__pyx_t_48 = __pyx_v_ii;
__pyx_t_49 = __pyx_v_jj;
__pyx_t_25 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_47 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_48)) ))) + ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_49)) ))) * __pyx_v_v1))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 620, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
+0621: Lind.append(nn)
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_35 = __Pyx_PyList_Append(__pyx_v_Lind, __pyx_t_3); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 621, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0622: nn += 1
__pyx_v_nn = (__pyx_v_nn + 1);
+0623: VPolybis.append((VPoly[0,ii] + jj*dlr*v0,
__pyx_t_50 = 0;
__pyx_t_51 = __pyx_v_ii;
__pyx_t_3 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_50 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_51)) ))) + ((__pyx_v_jj * __pyx_v_dlr) * __pyx_v_v0))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
/* … */
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_25);
__pyx_t_3 = 0;
__pyx_t_25 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_VPolybis, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 623, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
}
+0624: VPoly[1,ii] + jj*dlr*v1))
__pyx_t_52 = 1;
__pyx_t_53 = __pyx_v_ii;
__pyx_t_25 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_52 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_53)) ))) + ((__pyx_v_jj * __pyx_v_dlr) * __pyx_v_v1))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
+0625: VPolybis.append((VPoly[0,0],VPoly[1,0]))
__pyx_t_54 = 0;
__pyx_t_55 = 0;
__pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_54 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_55)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 625, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_56 = 1;
__pyx_t_57 = 0;
__pyx_t_25 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_56 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_57)) )))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 625, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 625, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_25);
__pyx_t_2 = 0;
__pyx_t_25 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_VPolybis, __pyx_t_3); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 625, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0626: else:
+0627: for ii in range(0,NP-1):
/*else*/ {
__pyx_t_12 = (__pyx_v_NP - 1);
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_13; __pyx_t_7+=1) {
__pyx_v_ii = __pyx_t_7;
+0628: v0, v1 = VPoly[0,ii+1]-VPoly[0,ii], VPoly[1,ii+1]-VPoly[1,ii]
__pyx_t_58 = 0;
__pyx_t_59 = (__pyx_v_ii + 1);
__pyx_t_60 = 0;
__pyx_t_61 = __pyx_v_ii;
__pyx_t_18 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_58 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_59)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_60 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_61)) ))));
__pyx_t_62 = 1;
__pyx_t_63 = (__pyx_v_ii + 1);
__pyx_t_64 = 1;
__pyx_t_65 = __pyx_v_ii;
__pyx_t_23 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_62 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_63)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_64 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_65)) ))));
__pyx_v_v0 = __pyx_t_18;
__pyx_v_v1 = __pyx_t_23;
+0629: LMinMax[1] = Csqrt(v0**2 + v1**2)
__pyx_t_66 = 1;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_66)) )) = sqrt((pow(__pyx_v_v0, 2.0) + pow(__pyx_v_v1, 2.0)));
+0630: L, dlr, indL, N[ii] = _Ves_mesh_dlfromL_cython(LMinMax, dL,
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_25 = __pyx_memoryview_fromslice(__pyx_v_LMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_25); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); __pyx_t_25 = 0; __pyx_t_2 = 0; /* … */ __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_25))) || (PyList_CheckExact(__pyx_t_25))) { PyObject* sequence = __pyx_t_25; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 630, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); __pyx_t_4 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_3,&__pyx_t_4}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_3,&__pyx_t_4}; __pyx_t_26 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_27 = Py_TYPE(__pyx_t_26)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_27(__pyx_t_26); if (unlikely(!item)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_27(__pyx_t_26), 4) < 0) __PYX_ERR(0, 630, __pyx_L1_error) __pyx_t_27 = NULL; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; goto __pyx_L13_unpacking_done; __pyx_L12_unpacking_failed:; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_27 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 630, __pyx_L1_error) __pyx_L13_unpacking_done:; } __pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_28 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_28.memview)) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_29 = __Pyx_PyInt_As_long(__pyx_t_4); if (unlikely((__pyx_t_29 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 630, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_L, 1); __pyx_v_L = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL; __pyx_v_dlr = __pyx_t_23; __PYX_XDEC_MEMVIEW(&__pyx_v_indL, 1); __pyx_v_indL = __pyx_t_28; __pyx_t_28.memview = NULL; __pyx_t_28.data = NULL; __pyx_t_67 = __pyx_v_ii; *__Pyx_BufPtrStrided1d(long *, __pyx_pybuffernd_N.rcbuffer->pybuffer.buf, __pyx_t_67, __pyx_pybuffernd_N.diminfo[0].strides) = __pyx_t_29;
+0631: dLMode=dLMode,
__pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dLMode, __pyx_v_dLMode) < 0) __PYX_ERR(0, 631, __pyx_L1_error)
+0632: DL=None, Lim=True,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 631, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 631, __pyx_L1_error)
+0633: margin=margin)
__pyx_t_25 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 633, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_25) < 0) __PYX_ERR(0, 631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+0634: VPolybis.append((VPoly[0,ii],VPoly[1,ii]))
__pyx_t_68 = 0;
__pyx_t_69 = __pyx_v_ii;
__pyx_t_25 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_68 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_69)) )))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_70 = 1;
__pyx_t_71 = __pyx_v_ii;
__pyx_t_4 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_70 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_71)) )))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 634, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_25);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
__pyx_t_25 = 0;
__pyx_t_4 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_VPolybis, __pyx_t_3); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 634, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0635: v0, v1 = v0/LMinMax[1], v1/LMinMax[1]
__pyx_t_72 = 1;
__pyx_t_23 = (__pyx_v_v0 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_72)) ))));
__pyx_t_73 = 1;
__pyx_t_18 = (__pyx_v_v1 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_73)) ))));
__pyx_v_v0 = __pyx_t_23;
__pyx_v_v1 = __pyx_t_18;
+0636: for jj in range(0,N[ii]):
__pyx_t_74 = __pyx_v_ii;
__pyx_t_29 = (*__Pyx_BufPtrStrided1d(long *, __pyx_pybuffernd_N.rcbuffer->pybuffer.buf, __pyx_t_74, __pyx_pybuffernd_N.diminfo[0].strides));
__pyx_t_39 = __pyx_t_29;
for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
__pyx_v_jj = __pyx_t_40;
+0637: LdLr.append(dlr)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_dlr); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_35 = __Pyx_PyList_Append(__pyx_v_LdLr, __pyx_t_3); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0638: LRref.append(VPoly[0,ii] + L[jj]*v0)
__pyx_t_75 = 0;
__pyx_t_76 = __pyx_v_ii;
__pyx_t_77 = __pyx_v_jj;
__pyx_t_3 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_75 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_76)) ))) + ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_77)) ))) * __pyx_v_v0))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 638, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_LRref, __pyx_t_3); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 638, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0639: LPtsCross.append((VPoly[0,ii] + L[jj]*v0 + DIn*VIn[0,ii],
__pyx_t_78 = 0;
__pyx_t_79 = __pyx_v_ii;
__pyx_t_80 = __pyx_v_jj;
__pyx_t_3 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_78 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_79)) ))) + ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_80)) ))) * __pyx_v_v0))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_25);
__pyx_t_25 = 0;
__pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_v_VIn, __pyx_t_1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_25); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
__pyx_t_25 = PyNumber_Add(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_25);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
__pyx_t_25 = 0;
__pyx_t_4 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_LPtsCross, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 639, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0640: VPoly[1,ii] + L[jj]*v1 + DIn*VIn[1,ii]))
__pyx_t_81 = 1;
__pyx_t_82 = __pyx_v_ii;
__pyx_t_83 = __pyx_v_jj;
__pyx_t_1 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_81 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_82)) ))) + ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_L.data) + __pyx_t_83)) ))) * __pyx_v_v1))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(__pyx_int_1);
__Pyx_GIVEREF(__pyx_int_1);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
__pyx_t_4 = 0;
__pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_VIn, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 640, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0641: Lind.append(nn)
__pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_35 = __Pyx_PyList_Append(__pyx_v_Lind, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 641, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0642: nn += 1
__pyx_v_nn = (__pyx_v_nn + 1);
+0643: VPolybis.append((VPoly[0,ii] + jj*dlr*v0,
__pyx_t_84 = 0;
__pyx_t_85 = __pyx_v_ii;
__pyx_t_2 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_84 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_85)) ))) + ((__pyx_v_jj * __pyx_v_dlr) * __pyx_v_v0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 643, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__pyx_t_25 = PyTuple_New(2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 643, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_25, 1, __pyx_t_4);
__pyx_t_2 = 0;
__pyx_t_4 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_VPolybis, __pyx_t_25); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 643, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
}
}
+0644: VPoly[1,ii] + jj*dlr*v1))
__pyx_t_86 = 1;
__pyx_t_87 = __pyx_v_ii;
__pyx_t_4 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_86 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_87)) ))) + ((__pyx_v_jj * __pyx_v_dlr) * __pyx_v_v1))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 644, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
+0645: VPolybis.append((VPoly[0,0],VPoly[1,0]))
__pyx_t_88 = 0;
__pyx_t_89 = 0;
__pyx_t_25 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_88 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_89)) )))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__pyx_t_90 = 1;
__pyx_t_91 = 0;
__pyx_t_4 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_90 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_91)) )))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 645, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_25);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
__pyx_t_25 = 0;
__pyx_t_4 = 0;
__pyx_t_35 = __Pyx_PyList_Append(__pyx_v_VPolybis, __pyx_t_2); if (unlikely(__pyx_t_35 == ((int)-1))) __PYX_ERR(0, 645, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
}
__pyx_L3:;
0646:
+0647: PtsCross, dLr, ind, Rref = np.array(LPtsCross).T, np.array(LdLr), \
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_25))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_25, __pyx_t_4, __pyx_v_LPtsCross) : __Pyx_PyObject_CallOneArg(__pyx_t_25, __pyx_v_LPtsCross); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_T); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_LdLr) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_LdLr); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 647, __pyx_L1_error)
+0648: np.array(Lind,dtype=int), np.array(LRref)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_Lind); __Pyx_GIVEREF(__pyx_v_Lind); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_Lind); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 648, __pyx_L1_error) __pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_26) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_26, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_LRref) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_LRref); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 648, __pyx_L1_error) __pyx_t_92 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_92, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_9, __pyx_t_8); } __pyx_t_10 = __pyx_t_9 = __pyx_t_8 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 647, __pyx_L1_error) } __pyx_t_92 = 0; __pyx_v_PtsCross = ((PyArrayObject *)__pyx_t_25); __pyx_t_25 = 0; __pyx_t_93 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_93, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 647, __pyx_L1_error) } __pyx_t_93 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = ((PyArrayObject *)__pyx_t_26); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_9, __pyx_t_8); } __pyx_t_10 = __pyx_t_9 = __pyx_t_8 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 647, __pyx_L1_error) } __pyx_t_6 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_26); __pyx_t_26 = 0; __pyx_t_93 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_93, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 647, __pyx_L1_error) } __pyx_t_93 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+0649: if D1 is not None:
__pyx_t_11 = (__pyx_v_D1 != Py_None);
__pyx_t_94 = (__pyx_t_11 != 0);
if (__pyx_t_94) {
/* … */
}
+0650: indin = (PtsCross[0,:]>=D1[0]) & (PtsCross[0,:]<=D1[1])
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__36); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_26 = __Pyx_GetItemInt(__pyx_v_D1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_26, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__36); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_D1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_25 = PyObject_RichCompare(__pyx_t_26, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_25); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_And(__pyx_t_2, __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_v_indin = __pyx_t_3; __pyx_t_3 = 0;
+0651: PtsCross = PtsCross[:,indin]
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_indin); __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_3); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 651, __pyx_L1_error) __pyx_t_92 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_92, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_9, __pyx_t_8); } __pyx_t_10 = __pyx_t_9 = __pyx_t_8 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 651, __pyx_L1_error) } __pyx_t_92 = 0; __Pyx_DECREF_SET(__pyx_v_PtsCross, ((PyArrayObject *)__pyx_t_25)); __pyx_t_25 = 0;
+0652: dLr, ind = dLr[indin], ind[indin]
__pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), __pyx_v_indin); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 652, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_indin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 652, __pyx_L1_error) __pyx_t_93 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_93, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 652, __pyx_L1_error) } __pyx_t_93 = 0; __Pyx_DECREF_SET(__pyx_v_dLr, ((PyArrayObject *)__pyx_t_25)); __pyx_t_25 = 0; __pyx_t_6 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_9, __pyx_t_8); } __pyx_t_10 = __pyx_t_9 = __pyx_t_8 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 652, __pyx_L1_error) } __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
+0653: if D2 is not None:
__pyx_t_94 = (__pyx_v_D2 != Py_None);
__pyx_t_11 = (__pyx_t_94 != 0);
if (__pyx_t_11) {
/* … */
}
+0654: indin = (PtsCross[1,:]>=D2[0]) & (PtsCross[1,:]<=D2[1])
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_25 = __Pyx_GetItemInt(__pyx_v_D2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_25, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_D2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_26 = PyObject_RichCompare(__pyx_t_25, __pyx_t_3, Py_LE); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_And(__pyx_t_2, __pyx_t_26); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_XDECREF_SET(__pyx_v_indin, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_tuple__42 = PyTuple_Pack(2, __pyx_int_1, __pyx_slice__8); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 654, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__42); __Pyx_GIVEREF(__pyx_tuple__42);
+0655: PtsCross = PtsCross[:,indin]
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_indin); __pyx_t_26 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_3); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_26) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_26, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 655, __pyx_L1_error) __pyx_t_92 = ((PyArrayObject *)__pyx_t_26); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_92, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 655, __pyx_L1_error) } __pyx_t_92 = 0; __Pyx_DECREF_SET(__pyx_v_PtsCross, ((PyArrayObject *)__pyx_t_26)); __pyx_t_26 = 0;
+0656: dLr, ind = dLr[indin], ind[indin]
__pyx_t_26 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), __pyx_v_indin); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (!(likely(((__pyx_t_26) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_26, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 656, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_indin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 656, __pyx_L1_error) __pyx_t_93 = ((PyArrayObject *)__pyx_t_26); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_93, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_8); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_10, __pyx_t_9, __pyx_t_8); } __pyx_t_10 = __pyx_t_9 = __pyx_t_8 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 656, __pyx_L1_error) } __pyx_t_93 = 0; __Pyx_DECREF_SET(__pyx_v_dLr, ((PyArrayObject *)__pyx_t_26)); __pyx_t_26 = 0; __pyx_t_6 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_7 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_7 < 0)) { PyErr_Fetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_8); Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_8, __pyx_t_9, __pyx_t_10); } __pyx_t_8 = __pyx_t_9 = __pyx_t_10 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 656, __pyx_L1_error) } __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
0657:
+0658: return PtsCross, dLr, ind, N, Rref, np.array(VPolybis).T
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_26) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_26, __pyx_v_VPolybis) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_VPolybis); __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_T); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_PtsCross)); __Pyx_GIVEREF(((PyObject *)__pyx_v_PtsCross)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_PtsCross)); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dLr)); __Pyx_INCREF(((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind)); PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_ind)); __Pyx_INCREF(((PyObject *)__pyx_v_N)); __Pyx_GIVEREF(((PyObject *)__pyx_v_N)); PyTuple_SET_ITEM(__pyx_t_3, 3, ((PyObject *)__pyx_v_N)); __Pyx_INCREF(((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Rref)); PyTuple_SET_ITEM(__pyx_t_3, 4, ((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0659:
0660:
0661: ########################################################
0662: ########################################################
0663: # Meshing - Volume - Tor
0664: ########################################################
0665:
0666:
0667: @cython.cdivision(True)
0668: @cython.wraparound(False)
0669: @cython.boundscheck(False)
+0670: def _Ves_Vmesh_Tor_SubFromD_cython(double dR, double dZ, double dRPhi,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_23_Ves_Vmesh_Tor_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_22_Ves_Vmesh_Tor_SubFromD_cython[] = "Return the desired submesh indicated by the limits (DR,DZ,DPhi),\n for the desired resolution (dR,dZ,dRphi)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_23_Ves_Vmesh_Tor_SubFromD_cython = {"_Ves_Vmesh_Tor_SubFromD_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_23_Ves_Vmesh_Tor_SubFromD_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_22_Ves_Vmesh_Tor_SubFromD_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_23_Ves_Vmesh_Tor_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_dR;
double __pyx_v_dZ;
double __pyx_v_dRPhi;
__Pyx_memviewslice __pyx_v_RMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ZMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_DR = 0;
PyObject *__pyx_v_DZ = 0;
PyObject *__pyx_v_DPhi = 0;
PyObject *__pyx_v_VPoly = 0;
PyObject *__pyx_v_Out = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Tor_SubFromD_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dR,&__pyx_n_s_dZ,&__pyx_n_s_dRPhi,&__pyx_n_s_RMinMax,&__pyx_n_s_ZMinMax,&__pyx_n_s_DR,&__pyx_n_s_DZ,&__pyx_n_s_DPhi,&__pyx_n_s_VPoly,&__pyx_n_s_Out,&__pyx_n_s_margin,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_22_Ves_Vmesh_Tor_SubFromD_cython(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_dR, double __pyx_v_dZ, double __pyx_v_dRPhi, __Pyx_memviewslice __pyx_v_RMinMax, __Pyx_memviewslice __pyx_v_ZMinMax, PyObject *__pyx_v_DR, PyObject *__pyx_v_DZ, PyObject *__pyx_v_DPhi, PyObject *__pyx_v_VPoly, PyObject *__pyx_v_Out, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_R0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_R = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Z = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dRPhir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dPhir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi = { 0, 0, { 0 }, { 0 }, { 0 } };
CYTHON_UNUSED double __pyx_v_dRr0;
double __pyx_v_dRr;
double __pyx_v_dZr;
double __pyx_v_DPhi0;
double __pyx_v_DPhi1;
double __pyx_v_abs0;
double __pyx_v_abs1;
double __pyx_v_phi;
double __pyx_v_indiijj;
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_indR0 = { 0, 0, { 0 }, { 0 }, { 0 } };
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_indR = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_indZ = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Phin = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi0 = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_NR0;
CYTHON_UNUSED int __pyx_v_NR;
int __pyx_v_NZ;
int __pyx_v_Rn;
int __pyx_v_Zn;
int __pyx_v_nRPhi0;
int __pyx_v_indR0ii;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_nPhi0;
int __pyx_v_nPhi1;
int __pyx_v_zz;
int __pyx_v_NP;
int __pyx_v_NRPhi_int;
int __pyx_v_Rratio;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_indI = 0;
PyArrayObject *__pyx_v_iii = 0;
PyArrayObject *__pyx_v_dV = 0;
PyArrayObject *__pyx_v_ind = 0;
CYTHON_UNUSED long __pyx_v_NPhimax;
PyObject *__pyx_v_indin = NULL;
PyObject *__pyx_v_Ru = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dV;
__Pyx_Buffer __pyx_pybuffer_dV;
__Pyx_LocalBuf_ND __pyx_pybuffernd_iii;
__Pyx_Buffer __pyx_pybuffer_iii;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indI;
__Pyx_Buffer __pyx_pybuffer_indI;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Tor_SubFromD_cython", 0);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_indI.pybuffer.buf = NULL;
__pyx_pybuffer_indI.refcount = 0;
__pyx_pybuffernd_indI.data = NULL;
__pyx_pybuffernd_indI.rcbuffer = &__pyx_pybuffer_indI;
__pyx_pybuffer_iii.pybuffer.buf = NULL;
__pyx_pybuffer_iii.refcount = 0;
__pyx_pybuffernd_iii.data = NULL;
__pyx_pybuffernd_iii.rcbuffer = &__pyx_pybuffer_iii;
__pyx_pybuffer_dV.pybuffer.buf = NULL;
__pyx_pybuffer_dV.refcount = 0;
__pyx_pybuffernd_dV.data = NULL;
__pyx_pybuffernd_dV.rcbuffer = &__pyx_pybuffer_dV;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__Pyx_XDECREF(__pyx_t_66);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Tor_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_R0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_R, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Z, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dRPhir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dPhir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indR0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indR, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indZ, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Phin, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi0, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_indI);
__Pyx_XDECREF((PyObject *)__pyx_v_iii);
__Pyx_XDECREF((PyObject *)__pyx_v_dV);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_indin);
__Pyx_XDECREF(__pyx_v_Ru);
__PYX_XDEC_MEMVIEW(&__pyx_v_RMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ZMinMax, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__180 = PyTuple_Pack(54, __pyx_n_s_dR, __pyx_n_s_dZ, __pyx_n_s_dRPhi, __pyx_n_s_RMinMax, __pyx_n_s_ZMinMax, __pyx_n_s_DR, __pyx_n_s_DZ, __pyx_n_s_DPhi, __pyx_n_s_VPoly, __pyx_n_s_Out, __pyx_n_s_margin, __pyx_n_s_R0, __pyx_n_s_R, __pyx_n_s_Z, __pyx_n_s_dRPhir, __pyx_n_s_dPhir, __pyx_n_s_NRPhi, __pyx_n_s_dRr0, __pyx_n_s_dRr, __pyx_n_s_dZr, __pyx_n_s_DPhi0, __pyx_n_s_DPhi1, __pyx_n_s_abs0, __pyx_n_s_abs1, __pyx_n_s_phi, __pyx_n_s_indiijj, __pyx_n_s_indR0, __pyx_n_s_indR, __pyx_n_s_indZ, __pyx_n_s_Phin, __pyx_n_s_NRPhi0, __pyx_n_s_NR0, __pyx_n_s_NR, __pyx_n_s_NZ, __pyx_n_s_Rn, __pyx_n_s_Zn, __pyx_n_s_nRPhi0, __pyx_n_s_indR0ii, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_nPhi0, __pyx_n_s_nPhi1, __pyx_n_s_zz, __pyx_n_s_NP, __pyx_n_s_NRPhi_int, __pyx_n_s_Rratio, __pyx_n_s_Pts, __pyx_n_s_indI, __pyx_n_s_iii, __pyx_n_s_dV, __pyx_n_s_ind, __pyx_n_s_NPhimax, __pyx_n_s_indin, __pyx_n_s_Ru); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(0, 670, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__180);
__Pyx_GIVEREF(__pyx_tuple__180);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_23_Ves_Vmesh_Tor_SubFromD_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 670, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Vmesh_Tor_SubFromD_cython, __pyx_t_1) < 0) __PYX_ERR(0, 670, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(11, 0, 54, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Vmesh_Tor_SubFromD_cython, 670, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(0, 670, __pyx_L1_error)
0671: double[::1] RMinMax, double[::1] ZMinMax,
+0672: DR=None, DZ=None, DPhi=None, VPoly=None,
values[5] = ((PyObject *)Py_None);
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)Py_None);
values[9] = ((PyObject*)__pyx_kp_s_X_Y_Z);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dR)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dZ)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromD_cython", 0, 5, 11, 1); __PYX_ERR(0, 670, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dRPhi)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromD_cython", 0, 5, 11, 2); __PYX_ERR(0, 670, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromD_cython", 0, 5, 11, 3); __PYX_ERR(0, 670, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ZMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromD_cython", 0, 5, 11, 4); __PYX_ERR(0, 670, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DR);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DZ);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DPhi);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Vmesh_Tor_SubFromD_cython") < 0)) __PYX_ERR(0, 670, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_dR = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_dR == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 670, __pyx_L3_error)
__pyx_v_dZ = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dZ == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 670, __pyx_L3_error)
__pyx_v_dRPhi = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dRPhi == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 670, __pyx_L3_error)
__pyx_v_RMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_RMinMax.memview)) __PYX_ERR(0, 671, __pyx_L3_error)
__pyx_v_ZMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ZMinMax.memview)) __PYX_ERR(0, 671, __pyx_L3_error)
__pyx_v_DR = values[5];
__pyx_v_DZ = values[6];
__pyx_v_DPhi = values[7];
__pyx_v_VPoly = values[8];
__pyx_v_Out = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 673, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__43;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromD_cython", 0, 5, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 670, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Tor_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Out), (&PyString_Type), 1, "Out", 1))) __PYX_ERR(0, 673, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_22_Ves_Vmesh_Tor_SubFromD_cython(__pyx_self, __pyx_v_dR, __pyx_v_dZ, __pyx_v_dRPhi, __pyx_v_RMinMax, __pyx_v_ZMinMax, __pyx_v_DR, __pyx_v_DZ, __pyx_v_DPhi, __pyx_v_VPoly, __pyx_v_Out, __pyx_v_margin);
+0673: str Out='(X,Y,Z)', double margin=_VSMALL):
__pyx_k__43 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0674: """Return the desired submesh indicated by the limits (DR,DZ,DPhi),
0675: for the desired resolution (dR,dZ,dRphi)
0676: """
0677: cdef double[::1] R0, R, Z, dRPhir, dPhir, NRPhi
0678: #cdef double[::1] dPhi, NRZPhi_cum0, indPhi, phi
0679: cdef double dRr0, dRr, dZr, DPhi0, DPhi1
0680: cdef double abs0, abs1, phi, indiijj
0681: cdef long[::1] indR0, indR, indZ, Phin, NRPhi0
0682: cdef int NR0, NR, NZ, Rn, Zn, nRPhi0, indR0ii, ii, jj, nPhi0, nPhi1, zz
0683: cdef int NP, NRPhi_int, Rratio
0684: cdef np.ndarray[double,ndim=2] Pts, indI
0685: cdef np.ndarray[double,ndim=1] iii, dV, ind
0686:
0687: # Get the actual R and Z resolutions and mesh elements
+0688: R0, dRr0, indR0, NR0 = _Ves_mesh_dlfromL_cython(RMinMax, dR, None,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_RMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_2 = 0; __pyx_t_3 = 0; /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 688, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 688, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 688, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 688, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_R0 = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dRr0 = __pyx_t_9; __pyx_v_indR0 = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_v_NR0 = __pyx_t_11;
+0689: Lim=True, margin=margin)
__pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 689, __pyx_L1_error) __pyx_t_2 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_margin, __pyx_t_2) < 0) __PYX_ERR(0, 689, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0690: R, dRr, indR, NR = _Ves_mesh_dlfromL_cython(RMinMax, dR, DR, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_RMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_dR); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_DR); __Pyx_GIVEREF(__pyx_v_DR); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_DR); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 690, __pyx_L1_error) /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 690, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 690, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 690, __pyx_L1_error) __pyx_L6_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_R = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dRr = __pyx_t_9; __pyx_v_indR = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_v_NR = __pyx_t_11;
+0691: margin=margin)
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 690, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0692: Z, dZr, indZ, NZ = _Ves_mesh_dlfromL_cython(ZMinMax, dZ, DZ, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_ZMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dZ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_INCREF(__pyx_v_DZ); __Pyx_GIVEREF(__pyx_v_DZ); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_DZ); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 692, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 692, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); __pyx_t_1 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_1}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_1}; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 692, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 692, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Z = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dZr = __pyx_t_9; __pyx_v_indZ = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_v_NZ = __pyx_t_11;
+0693: margin=margin)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 692, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0694: Rn = len(R)
__pyx_t_12 = __Pyx_MemoryView_Len(__pyx_v_R);
__pyx_v_Rn = __pyx_t_12;
+0695: Zn = len(Z)
__pyx_t_12 = __Pyx_MemoryView_Len(__pyx_v_Z);
__pyx_v_Zn = __pyx_t_12;
0696:
0697: # Get the limits if any (and make sure to replace them in the proper
0698: # quadrants)
+0699: if DPhi is None:
__pyx_t_13 = (__pyx_v_DPhi == Py_None);
__pyx_t_14 = (__pyx_t_13 != 0);
if (__pyx_t_14) {
/* … */
goto __pyx_L9;
}
+0700: DPhi0, DPhi1 = -Cpi, Cpi
__pyx_t_9 = (-M_PI);
__pyx_t_15 = M_PI;
__pyx_v_DPhi0 = __pyx_t_9;
__pyx_v_DPhi1 = __pyx_t_15;
0701: else:
+0702: DPhi0 = Catan2(Csin(DPhi[0]), Ccos(DPhi[0]))
/*else*/ {
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 702, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 702, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_v_DPhi0 = atan2(sin(__pyx_t_15), cos(__pyx_t_9));
+0703: DPhi1 = Catan2(Csin(DPhi[1]), Ccos(DPhi[1]))
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 703, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_DPhi1 = atan2(sin(__pyx_t_9), cos(__pyx_t_15)); } __pyx_L9:;
0704:
+0705: dRPhir, dPhir = np.empty((Rn,)), np.empty((Rn,))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 705, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_dRPhir = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dPhir = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL;
+0706: Phin = np.empty((Rn,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 706, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 706, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_Phin = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+0707: NRPhi = np.empty((Rn,))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 707, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_NRPhi = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL;
+0708: NRPhi0 = np.zeros((Rn,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 708, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 708, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_NRPhi0 = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+0709: nRPhi0, indR0ii = 0, 0
__pyx_t_11 = 0; __pyx_t_17 = 0; __pyx_v_nRPhi0 = __pyx_t_11; __pyx_v_indR0ii = __pyx_t_17;
+0710: NP, NPhimax = 0, 0
__pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_v_NP = __pyx_t_17; __pyx_v_NPhimax = __pyx_t_18;
+0711: Rratio = int(Cceil(R[Rn-1]/R[0]))
__pyx_t_19 = (__pyx_v_Rn - 1); __pyx_t_20 = 0; __pyx_v_Rratio = ((int)ceil(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_19)) ))) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_20)) ))))));
0712:
+0713: for ii in range(0,Rn):
__pyx_t_17 = __pyx_v_Rn;
__pyx_t_11 = __pyx_t_17;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_11; __pyx_t_21+=1) {
__pyx_v_ii = __pyx_t_21;
0714: # Get the actual RPhi resolution and Phi mesh elements (! depends on R!)
+0715: NRPhi[ii] = Cceil(2.*Cpi*R[ii]/dRPhi)
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_23)) )) = ceil((((2. * M_PI) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_22)) )))) / __pyx_v_dRPhi));
+0716: NRPhi_int = int(NRPhi[ii])
__pyx_t_24 = __pyx_v_ii;
__pyx_v_NRPhi_int = ((int)(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_24)) ))));
+0717: dPhir[ii] = 2.*Cpi/NRPhi[ii]
__pyx_t_25 = __pyx_v_ii;
__pyx_t_26 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_26)) )) = ((2. * M_PI) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_25)) ))));
+0718: dRPhir[ii] = dPhir[ii]*R[ii]
__pyx_t_27 = __pyx_v_ii;
__pyx_t_28 = __pyx_v_ii;
__pyx_t_29 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhir.data) + __pyx_t_29)) )) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_27)) ))) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_28)) ))));
0719: # Get index and cumulated indices from background
+0720: for jj in range(indR0ii,NR0):
__pyx_t_30 = __pyx_v_NR0;
__pyx_t_31 = __pyx_t_30;
for (__pyx_t_32 = __pyx_v_indR0ii; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) {
__pyx_v_jj = __pyx_t_32;
+0721: if R0[jj]==R[ii]:
__pyx_t_33 = __pyx_v_jj;
__pyx_t_34 = __pyx_v_ii;
__pyx_t_14 = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R0.data) + __pyx_t_33)) ))) == (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_34)) )))) != 0);
if (__pyx_t_14) {
/* … */
}
+0722: indR0ii = jj
__pyx_v_indR0ii = __pyx_v_jj;
+0723: break
goto __pyx_L13_break;
0724: else:
+0725: nRPhi0 += <long>Cceil(2.*Cpi*R0[jj]/dRPhi)
/*else*/ {
__pyx_t_35 = __pyx_v_jj;
__pyx_v_nRPhi0 = (__pyx_v_nRPhi0 + ((long)ceil((((2. * M_PI) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R0.data) + __pyx_t_35)) )))) / __pyx_v_dRPhi))));
+0726: NRPhi0[ii] = nRPhi0*NZ
__pyx_t_36 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_36)) )) = (__pyx_v_nRPhi0 * __pyx_v_NZ);
}
}
__pyx_L13_break:;
0727: # Get indices of phi
0728: # Get the extreme indices of the mesh elements that really need to
0729: # be created within those limits
+0730: abs0 = Cabs(DPhi0+Cpi)
__pyx_v_abs0 = fabs((__pyx_v_DPhi0 + M_PI));
+0731: if abs0-dPhir[ii]*Cfloor(abs0/dPhir[ii]) < margin*dPhir[ii]:
__pyx_t_37 = __pyx_v_ii;
__pyx_t_38 = __pyx_v_ii;
__pyx_t_39 = __pyx_v_ii;
__pyx_t_14 = (((__pyx_v_abs0 - ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_37)) ))) * floor((__pyx_v_abs0 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_38)) ))))))) < (__pyx_v_margin * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_39)) ))))) != 0);
if (__pyx_t_14) {
/* … */
goto __pyx_L15;
}
+0732: nPhi0 = int(Cround((DPhi0+Cpi)/dPhir[ii]))
__pyx_t_40 = __pyx_v_ii;
__pyx_v_nPhi0 = ((int)round(((__pyx_v_DPhi0 + M_PI) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_40)) ))))));
0733: else:
+0734: nPhi0 = int(Cfloor((DPhi0+Cpi)/dPhir[ii]))
/*else*/ {
__pyx_t_41 = __pyx_v_ii;
__pyx_v_nPhi0 = ((int)floor(((__pyx_v_DPhi0 + M_PI) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_41)) ))))));
}
__pyx_L15:;
+0735: abs1 = Cabs(DPhi1+Cpi)
__pyx_v_abs1 = fabs((__pyx_v_DPhi1 + M_PI));
+0736: if abs1-dPhir[ii]*Cfloor(abs1/dPhir[ii]) < margin*dPhir[ii]:
__pyx_t_42 = __pyx_v_ii;
__pyx_t_43 = __pyx_v_ii;
__pyx_t_44 = __pyx_v_ii;
__pyx_t_14 = (((__pyx_v_abs1 - ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_42)) ))) * floor((__pyx_v_abs1 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_43)) ))))))) < (__pyx_v_margin * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_44)) ))))) != 0);
if (__pyx_t_14) {
/* … */
goto __pyx_L16;
}
+0737: nPhi1 = int(Cround((DPhi1+Cpi)/dPhir[ii])-1)
__pyx_t_45 = __pyx_v_ii;
__pyx_v_nPhi1 = ((int)(round(((__pyx_v_DPhi1 + M_PI) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_45)) ))))) - 1.0));
0738: else:
+0739: nPhi1 = int(Cfloor((DPhi1+Cpi)/dPhir[ii]))
/*else*/ {
__pyx_t_46 = __pyx_v_ii;
__pyx_v_nPhi1 = ((int)floor(((__pyx_v_DPhi1 + M_PI) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_46)) ))))));
}
__pyx_L16:;
0740:
+0741: if DPhi0<DPhi1:
__pyx_t_14 = ((__pyx_v_DPhi0 < __pyx_v_DPhi1) != 0);
if (__pyx_t_14) {
/* … */
goto __pyx_L17;
}
0742: #indI.append(list(range(nPhi0,nPhi1+1)))
+0743: Phin[ii] = nPhi1+1-nPhi0
__pyx_t_47 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_47)) )) = ((__pyx_v_nPhi1 + 1) - __pyx_v_nPhi0);
+0744: if ii==0:
__pyx_t_14 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_14) {
/* … */
}
+0745: indI = np.nan*np.ones((Rn,Phin[ii]*Rratio+1))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_48 = __pyx_v_ii; __pyx_t_2 = __Pyx_PyInt_From_long((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_48)) ))) * __pyx_v_Rratio) + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_5 = 0; __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_6); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 745, __pyx_L1_error) __pyx_t_49 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer); __pyx_t_30 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indI.rcbuffer->pybuffer, (PyObject*)__pyx_t_49, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_30 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indI.rcbuffer->pybuffer, (PyObject*)__pyx_v_indI, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_indI.diminfo[0].strides = __pyx_pybuffernd_indI.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indI.diminfo[0].shape = __pyx_pybuffernd_indI.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_indI.diminfo[1].strides = __pyx_pybuffernd_indI.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_indI.diminfo[1].shape = __pyx_pybuffernd_indI.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 745, __pyx_L1_error) } __pyx_t_49 = 0; __Pyx_XDECREF_SET(__pyx_v_indI, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
+0746: for jj in range(0,Phin[ii]):
__pyx_t_53 = __pyx_v_ii;
__pyx_t_18 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_53)) )));
__pyx_t_54 = __pyx_t_18;
for (__pyx_t_30 = 0; __pyx_t_30 < __pyx_t_54; __pyx_t_30+=1) {
__pyx_v_jj = __pyx_t_30;
+0747: indI[ii,jj] = <double>( nPhi0+jj )
__pyx_t_55 = __pyx_v_ii;
__pyx_t_56 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_indI.rcbuffer->pybuffer.buf, __pyx_t_55, __pyx_pybuffernd_indI.diminfo[0].strides, __pyx_t_56, __pyx_pybuffernd_indI.diminfo[1].strides) = ((double)(__pyx_v_nPhi0 + __pyx_v_jj));
}
0748: else:
0749: #indI.append(list(range(nPhi0,NRPhi_int)+list(range(0,nPhi1+1))))
+0750: Phin[ii] = nPhi1+1+NRPhi_int-nPhi0
/*else*/ {
__pyx_t_57 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_57)) )) = (((__pyx_v_nPhi1 + 1) + __pyx_v_NRPhi_int) - __pyx_v_nPhi0);
+0751: if ii==0:
__pyx_t_14 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_14) {
/* … */
}
+0752: indI = np.nan*np.ones((Rn,Phin[ii]*Rratio+1))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nan); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ones); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Rn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_58 = __pyx_v_ii; __pyx_t_2 = __Pyx_PyInt_From_long((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_58)) ))) * __pyx_v_Rratio) + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 752, __pyx_L1_error) __pyx_t_49 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer); __pyx_t_30 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indI.rcbuffer->pybuffer, (PyObject*)__pyx_t_49, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_30 < 0)) { PyErr_Fetch(&__pyx_t_52, &__pyx_t_51, &__pyx_t_50); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indI.rcbuffer->pybuffer, (PyObject*)__pyx_v_indI, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_52); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_50); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_52, __pyx_t_51, __pyx_t_50); } __pyx_t_52 = __pyx_t_51 = __pyx_t_50 = 0; } __pyx_pybuffernd_indI.diminfo[0].strides = __pyx_pybuffernd_indI.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indI.diminfo[0].shape = __pyx_pybuffernd_indI.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_indI.diminfo[1].strides = __pyx_pybuffernd_indI.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_indI.diminfo[1].shape = __pyx_pybuffernd_indI.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 752, __pyx_L1_error) } __pyx_t_49 = 0; __Pyx_XDECREF_SET(__pyx_v_indI, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+0753: for jj in range(0,NRPhi_int-nPhi0):
__pyx_t_30 = (__pyx_v_NRPhi_int - __pyx_v_nPhi0);
__pyx_t_31 = __pyx_t_30;
for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) {
__pyx_v_jj = __pyx_t_32;
+0754: indI[ii,jj] = <double>( nPhi0+jj )
__pyx_t_59 = __pyx_v_ii;
__pyx_t_60 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_indI.rcbuffer->pybuffer.buf, __pyx_t_59, __pyx_pybuffernd_indI.diminfo[0].strides, __pyx_t_60, __pyx_pybuffernd_indI.diminfo[1].strides) = ((double)(__pyx_v_nPhi0 + __pyx_v_jj));
}
+0755: for jj in range(NRPhi_int-nPhi0,Phin[ii]):
__pyx_t_61 = __pyx_v_ii;
__pyx_t_18 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_61)) )));
__pyx_t_54 = __pyx_t_18;
for (__pyx_t_30 = (__pyx_v_NRPhi_int - __pyx_v_nPhi0); __pyx_t_30 < __pyx_t_54; __pyx_t_30+=1) {
__pyx_v_jj = __pyx_t_30;
+0756: indI[ii,jj] = <double>( jj- (NRPhi_int-nPhi0) )
__pyx_t_62 = __pyx_v_ii;
__pyx_t_63 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_indI.rcbuffer->pybuffer.buf, __pyx_t_62, __pyx_pybuffernd_indI.diminfo[0].strides, __pyx_t_63, __pyx_pybuffernd_indI.diminfo[1].strides) = ((double)(__pyx_v_jj - (__pyx_v_NRPhi_int - __pyx_v_nPhi0)));
}
}
__pyx_L17:;
+0757: NP += Zn*Phin[ii]
__pyx_t_64 = __pyx_v_ii;
__pyx_v_NP = (__pyx_v_NP + (__pyx_v_Zn * (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_64)) )))));
}
0758:
+0759: Pts = np.empty((3,NP))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 759, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 759, __pyx_L1_error) __pyx_t_49 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_49, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 759, __pyx_L1_error) } __pyx_t_49 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
+0760: ind = np.empty((NP,))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 760, __pyx_L1_error) __pyx_t_65 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_52, &__pyx_t_51, &__pyx_t_50); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_52); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_50); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_52, __pyx_t_51, __pyx_t_50); } __pyx_t_52 = __pyx_t_51 = __pyx_t_50 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 760, __pyx_L1_error) } __pyx_t_65 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
+0761: dV = np.empty((NP,))
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 761, __pyx_L1_error) __pyx_t_65 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_v_dV, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_dV.diminfo[0].strides = __pyx_pybuffernd_dV.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dV.diminfo[0].shape = __pyx_pybuffernd_dV.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 761, __pyx_L1_error) } __pyx_t_65 = 0; __pyx_v_dV = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
0762: # Compute Pts, dV and ind
0763: # This triple loop is the longest part, it takes ~90% of the CPU time
+0764: NP = 0
__pyx_v_NP = 0;
+0765: if Out.lower()=='(x,y,z)':
__pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 765, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_14) { /* … */ goto __pyx_L26; }
+0766: for ii in range(0,Rn):
__pyx_t_17 = __pyx_v_Rn;
__pyx_t_11 = __pyx_t_17;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_11; __pyx_t_21+=1) {
__pyx_v_ii = __pyx_t_21;
0767: # To make sure the indices are in increasing order
+0768: iii = np.sort(indI[ii,~np.isnan(indI[ii,:])])
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sort); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_66 = PyTuple_New(2); if (unlikely(!__pyx_t_66)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_66); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_66, 0, __pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_66, 1, __pyx_slice__8); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_66); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_66); __pyx_t_66 = 0; __pyx_t_66 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_66 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_66)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_66); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_66) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_66, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_66); __pyx_t_66 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Invert(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 768, __pyx_L1_error) __pyx_t_65 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer); __pyx_t_30 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_30 < 0)) { PyErr_Fetch(&__pyx_t_52, &__pyx_t_51, &__pyx_t_50); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_v_iii, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_52); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_50); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_52, __pyx_t_51, __pyx_t_50); } __pyx_t_52 = __pyx_t_51 = __pyx_t_50 = 0; } __pyx_pybuffernd_iii.diminfo[0].strides = __pyx_pybuffernd_iii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iii.diminfo[0].shape = __pyx_pybuffernd_iii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 768, __pyx_L1_error) } __pyx_t_65 = 0; __Pyx_XDECREF_SET(__pyx_v_iii, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+0769: for zz in range(0,Zn):
__pyx_t_30 = __pyx_v_Zn;
__pyx_t_31 = __pyx_t_30;
for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) {
__pyx_v_zz = __pyx_t_32;
+0770: for jj in range(0,Phin[ii]):
__pyx_t_67 = __pyx_v_ii;
__pyx_t_18 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_67)) )));
__pyx_t_54 = __pyx_t_18;
for (__pyx_t_68 = 0; __pyx_t_68 < __pyx_t_54; __pyx_t_68+=1) {
__pyx_v_jj = __pyx_t_68;
+0771: indiijj = iii[jj]
__pyx_t_69 = __pyx_v_jj;
__pyx_v_indiijj = (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_iii.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_iii.diminfo[0].strides));
+0772: phi = -Cpi + (0.5+indiijj)*dPhir[ii]
__pyx_t_70 = __pyx_v_ii;
__pyx_v_phi = ((-M_PI) + ((0.5 + __pyx_v_indiijj) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_70)) )))));
+0773: Pts[0,NP] = R[ii]*Ccos(phi)
__pyx_t_71 = __pyx_v_ii;
__pyx_t_72 = 0;
__pyx_t_73 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_72, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_73, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_71)) ))) * cos(__pyx_v_phi));
+0774: Pts[1,NP] = R[ii]*Csin(phi)
__pyx_t_74 = __pyx_v_ii;
__pyx_t_75 = 1;
__pyx_t_76 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_76, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_74)) ))) * sin(__pyx_v_phi));
+0775: Pts[2,NP] = Z[zz]
__pyx_t_77 = __pyx_v_zz;
__pyx_t_78 = 2;
__pyx_t_79 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_78, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_79, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Z.data) + __pyx_t_77)) )));
+0776: ind[NP] = NRPhi0[ii] + indZ[zz]*NRPhi[ii] + indiijj
__pyx_t_80 = __pyx_v_ii;
__pyx_t_81 = __pyx_v_zz;
__pyx_t_82 = __pyx_v_ii;
__pyx_t_83 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_ind.rcbuffer->pybuffer.buf, __pyx_t_83, __pyx_pybuffernd_ind.diminfo[0].strides) = (((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_80)) ))) + ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_indZ.data) + __pyx_t_81)) ))) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_82)) ))))) + __pyx_v_indiijj);
+0777: dV[NP] = dRr*dZr*dRPhir[ii]
__pyx_t_84 = __pyx_v_ii;
__pyx_t_85 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dV.rcbuffer->pybuffer.buf, __pyx_t_85, __pyx_pybuffernd_dV.diminfo[0].strides) = ((__pyx_v_dRr * __pyx_v_dZr) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhir.data) + __pyx_t_84)) ))));
+0778: NP += 1
__pyx_v_NP = (__pyx_v_NP + 1);
}
}
}
0779: else:
+0780: for ii in range(0,Rn):
/*else*/ {
__pyx_t_17 = __pyx_v_Rn;
__pyx_t_11 = __pyx_t_17;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_11; __pyx_t_21+=1) {
__pyx_v_ii = __pyx_t_21;
+0781: iii = np.sort(indI[ii,~np.isnan(indI[ii,:])])
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sort); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isnan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_66 = PyTuple_New(2); if (unlikely(!__pyx_t_66)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_66); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_66, 0, __pyx_t_3); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_66, 1, __pyx_slice__8); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_66); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_66); __pyx_t_66 = 0; __pyx_t_66 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_66 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_66)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_66); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_5 = (__pyx_t_66) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_66, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_66); __pyx_t_66 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Invert(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 781, __pyx_L1_error) __pyx_t_65 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer); __pyx_t_30 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_30 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_v_iii, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_iii.diminfo[0].strides = __pyx_pybuffernd_iii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iii.diminfo[0].shape = __pyx_pybuffernd_iii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 781, __pyx_L1_error) } __pyx_t_65 = 0; __Pyx_XDECREF_SET(__pyx_v_iii, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
0782: #assert iii.size==Phin[ii] and np.all(np.unique(iii)==iii)
+0783: for zz in range(0,Zn):
__pyx_t_30 = __pyx_v_Zn;
__pyx_t_31 = __pyx_t_30;
for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) {
__pyx_v_zz = __pyx_t_32;
+0784: for jj in range(0,Phin[ii]):
__pyx_t_86 = __pyx_v_ii;
__pyx_t_18 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_86)) )));
__pyx_t_54 = __pyx_t_18;
for (__pyx_t_68 = 0; __pyx_t_68 < __pyx_t_54; __pyx_t_68+=1) {
__pyx_v_jj = __pyx_t_68;
+0785: indiijj = iii[jj] #indI[ii,iii[jj]]
__pyx_t_87 = __pyx_v_jj;
__pyx_v_indiijj = (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_iii.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_iii.diminfo[0].strides));
+0786: Pts[0,NP] = R[ii]
__pyx_t_88 = __pyx_v_ii;
__pyx_t_89 = 0;
__pyx_t_90 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_89, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_90, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_88)) )));
+0787: Pts[1,NP] = Z[zz]
__pyx_t_91 = __pyx_v_zz;
__pyx_t_92 = 1;
__pyx_t_93 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_93, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Z.data) + __pyx_t_91)) )));
+0788: Pts[2,NP] = -Cpi + (0.5+indiijj)*dPhir[ii]
__pyx_t_94 = __pyx_v_ii;
__pyx_t_95 = 2;
__pyx_t_96 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_96, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((-M_PI) + ((0.5 + __pyx_v_indiijj) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_94)) )))));
+0789: ind[NP] = NRPhi0[ii] + indZ[zz]*NRPhi[ii] + indiijj
__pyx_t_97 = __pyx_v_ii;
__pyx_t_98 = __pyx_v_zz;
__pyx_t_99 = __pyx_v_ii;
__pyx_t_100 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_ind.rcbuffer->pybuffer.buf, __pyx_t_100, __pyx_pybuffernd_ind.diminfo[0].strides) = (((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_97)) ))) + ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_indZ.data) + __pyx_t_98)) ))) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_99)) ))))) + __pyx_v_indiijj);
+0790: dV[NP] = dRr*dZr*dRPhir[ii]
__pyx_t_101 = __pyx_v_ii;
__pyx_t_102 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dV.rcbuffer->pybuffer.buf, __pyx_t_102, __pyx_pybuffernd_dV.diminfo[0].strides) = ((__pyx_v_dRr * __pyx_v_dZr) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhir.data) + __pyx_t_101)) ))));
+0791: NP += 1
__pyx_v_NP = (__pyx_v_NP + 1);
}
}
}
}
__pyx_L26:;
0792:
+0793: if VPoly is not None:
__pyx_t_14 = (__pyx_v_VPoly != Py_None);
__pyx_t_13 = (__pyx_t_14 != 0);
if (__pyx_t_13) {
/* … */
}
+0794: if Out.lower()=='(x,y,z)':
__pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 794, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 794, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_13) { /* … */ goto __pyx_L40; }
+0795: R = np.hypot(Pts[0,:],Pts[1,:])
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_hypot); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_tuple__36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_tuple__42); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_4, __pyx_t_5}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_4, __pyx_t_5}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_17, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_17, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_6, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 795, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_R, 1); __pyx_v_R = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL;
+0796: indin = Path(VPoly.T).contains_points(np.array([R,Pts[2,:]]).T,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Path); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_R, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_tuple__32); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_T); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 796, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_indin = __pyx_t_1; __pyx_t_1 = 0;
+0797: transform=None, radius=0.0)
__pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 797, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 797, __pyx_L1_error)
+0798: Pts, dV, ind = Pts[:,indin], dV[indin], ind[indin]
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_indin); __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 798, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dV), __pyx_v_indin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 798, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_indin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 798, __pyx_L1_error) __pyx_t_49 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_49, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_52, &__pyx_t_51, &__pyx_t_50); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_52); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_50); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_52, __pyx_t_51, __pyx_t_50); } __pyx_t_52 = __pyx_t_51 = __pyx_t_50 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 798, __pyx_L1_error) } __pyx_t_49 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_65 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_v_dV, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_dV.diminfo[0].strides = __pyx_pybuffernd_dV.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dV.diminfo[0].shape = __pyx_pybuffernd_dV.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 798, __pyx_L1_error) } __pyx_t_65 = 0; __Pyx_DECREF_SET(__pyx_v_dV, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_65 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_52, &__pyx_t_51, &__pyx_t_50); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_52); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_50); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_52, __pyx_t_51, __pyx_t_50); } __pyx_t_52 = __pyx_t_51 = __pyx_t_50 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 798, __pyx_L1_error) } __pyx_t_65 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+0799: Ru = np.unique(R)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_unique); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_R, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_Ru = __pyx_t_6; __pyx_t_6 = 0;
0800: else:
+0801: indin = Path(VPoly.T).contains_points(Pts[:-1,:].T, transform=None,
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Path); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_tuple__44); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 801, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_indin = __pyx_t_2;
__pyx_t_2 = 0;
/* … */
__pyx_tuple__44 = PyTuple_Pack(2, __pyx_slice__23, __pyx_slice__8); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 801, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__44);
__Pyx_GIVEREF(__pyx_tuple__44);
0802: radius=0.0)
+0803: Pts, dV, ind = Pts[:,indin], dV[indin], ind[indin]
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_indin); __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 803, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dV), __pyx_v_indin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 803, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_indin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 803, __pyx_L1_error) __pyx_t_49 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_49, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 803, __pyx_L1_error) } __pyx_t_49 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_65 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_52, &__pyx_t_51, &__pyx_t_50); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_v_dV, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_52); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_50); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_52, __pyx_t_51, __pyx_t_50); } __pyx_t_52 = __pyx_t_51 = __pyx_t_50 = 0; } __pyx_pybuffernd_dV.diminfo[0].strides = __pyx_pybuffernd_dV.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dV.diminfo[0].shape = __pyx_pybuffernd_dV.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 803, __pyx_L1_error) } __pyx_t_65 = 0; __Pyx_DECREF_SET(__pyx_v_dV, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0; __pyx_t_65 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_65, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_50, &__pyx_t_51, &__pyx_t_52); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_50); Py_XDECREF(__pyx_t_51); Py_XDECREF(__pyx_t_52); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_50, __pyx_t_51, __pyx_t_52); } __pyx_t_50 = __pyx_t_51 = __pyx_t_52 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 803, __pyx_L1_error) } __pyx_t_65 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+0804: Ru = np.unique(Pts[0,:])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_unique); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_tuple__36); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 804, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Ru = __pyx_t_6; __pyx_t_6 = 0; } __pyx_L40:;
+0805: if not np.all(Ru==R):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_all); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_R, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyObject_RichCompare(__pyx_v_Ru, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 805, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_14 = ((!__pyx_t_13) != 0); if (__pyx_t_14) { /* … */ }
+0806: dRPhir = np.array([dRPhir[ii] for ii in range(0,len(R)) \
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_MemoryView_Len(__pyx_v_R); __pyx_t_103 = __pyx_t_12; for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_103; __pyx_t_17+=1) { __pyx_v_ii = __pyx_t_17; /* … */ __pyx_t_105 = __pyx_v_ii; __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhir.data) + __pyx_t_105)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 806, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_6, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 806, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_dRPhir, 1); __pyx_v_dRPhir = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL;
+0807: if R[ii] in Ru])
__pyx_t_104 = __pyx_v_ii;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_104)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 807, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_14 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_v_Ru, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 807, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_13 = (__pyx_t_14 != 0);
if (__pyx_t_13) {
/* … */
}
}
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_5, function);
}
}
__pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 806, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0808: return Pts, dV, ind.astype(int), dRr, dZr, np.asarray(dRPhir)
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ind), __pyx_n_s_astype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dRr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dZr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_dRPhir, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_66 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_66 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_66)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_66); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_66) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_66, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_66); __pyx_t_66 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dV)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dV)); PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_dV)); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_t_1); __pyx_t_6 = 0; __pyx_t_5 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
0809:
0810:
0811:
0812:
0813: @cython.cdivision(True)
0814: @cython.wraparound(False)
0815: @cython.boundscheck(False)
+0816: def _Ves_Vmesh_Tor_SubFromInd_cython(double dR, double dZ, double dRPhi,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_25_Ves_Vmesh_Tor_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_24_Ves_Vmesh_Tor_SubFromInd_cython[] = " Return the desired submesh indicated by the (numerical) indices,\n for the desired resolution (dR,dZ,dRphi)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_25_Ves_Vmesh_Tor_SubFromInd_cython = {"_Ves_Vmesh_Tor_SubFromInd_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_25_Ves_Vmesh_Tor_SubFromInd_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_24_Ves_Vmesh_Tor_SubFromInd_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_25_Ves_Vmesh_Tor_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_dR;
double __pyx_v_dZ;
double __pyx_v_dRPhi;
__Pyx_memviewslice __pyx_v_RMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ZMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ind = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_Out = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Tor_SubFromInd_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dR,&__pyx_n_s_dZ,&__pyx_n_s_dRPhi,&__pyx_n_s_RMinMax,&__pyx_n_s_ZMinMax,&__pyx_n_s_ind,&__pyx_n_s_Out,&__pyx_n_s_margin,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
values[6] = ((PyObject*)__pyx_kp_s_X_Y_Z);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dR)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dZ)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromInd_cython", 0, 6, 8, 1); __PYX_ERR(0, 816, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dRPhi)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromInd_cython", 0, 6, 8, 2); __PYX_ERR(0, 816, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromInd_cython", 0, 6, 8, 3); __PYX_ERR(0, 816, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ZMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromInd_cython", 0, 6, 8, 4); __PYX_ERR(0, 816, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromInd_cython", 0, 6, 8, 5); __PYX_ERR(0, 816, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Vmesh_Tor_SubFromInd_cython") < 0)) __PYX_ERR(0, 816, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_dR = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_dR == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 816, __pyx_L3_error)
__pyx_v_dZ = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dZ == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 816, __pyx_L3_error)
__pyx_v_dRPhi = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dRPhi == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 816, __pyx_L3_error)
__pyx_v_RMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_RMinMax.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
__pyx_v_ZMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ZMinMax.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
__pyx_v_ind = __Pyx_PyObject_to_MemoryviewSlice_dc_long(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ind.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
__pyx_v_Out = ((PyObject*)values[6]);
if (values[7]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__45;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Tor_SubFromInd_cython", 0, 6, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 816, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Tor_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Out), (&PyString_Type), 1, "Out", 1))) __PYX_ERR(0, 818, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_24_Ves_Vmesh_Tor_SubFromInd_cython(__pyx_self, __pyx_v_dR, __pyx_v_dZ, __pyx_v_dRPhi, __pyx_v_RMinMax, __pyx_v_ZMinMax, __pyx_v_ind, __pyx_v_Out, __pyx_v_margin);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_24_Ves_Vmesh_Tor_SubFromInd_cython(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_dR, double __pyx_v_dZ, double __pyx_v_dRPhi, __Pyx_memviewslice __pyx_v_RMinMax, __Pyx_memviewslice __pyx_v_ZMinMax, __Pyx_memviewslice __pyx_v_ind, PyObject *__pyx_v_Out, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_R = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Z = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dRPhirRef = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dPhir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Ru = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dRPhir = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dRr;
double __pyx_v_dZr;
double __pyx_v_phi;
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_indR = { 0, 0, { 0 }, { 0 }, { 0 } };
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_indZ = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi = { 0, 0, { 0 }, { 0 }, { 0 } };
long __pyx_v_NR;
long __pyx_v_NZ;
CYTHON_UNUSED long __pyx_v_Rn;
CYTHON_UNUSED long __pyx_v_Zn;
long __pyx_v_NP;
long __pyx_v_Rratio;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_iiR;
int __pyx_v_iiZ;
int __pyx_v_iiphi;
__Pyx_memviewslice __pyx_v_Phi = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_dV = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dV;
__Pyx_Buffer __pyx_pybuffer_dV;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Tor_SubFromInd_cython", 0);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_dV.pybuffer.buf = NULL;
__pyx_pybuffer_dV.refcount = 0;
__pyx_pybuffernd_dV.data = NULL;
__pyx_pybuffernd_dV.rcbuffer = &__pyx_pybuffer_dV;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_13, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_32, 1);
__Pyx_XDECREF(__pyx_t_92);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Tor_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dV.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_R, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Z, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dRPhirRef, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dPhir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Ru, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dRPhir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indR, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indZ, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Phi, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_dV);
__PYX_XDEC_MEMVIEW(&__pyx_v_RMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ZMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ind, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__182 = PyTuple_Pack(35, __pyx_n_s_dR, __pyx_n_s_dZ, __pyx_n_s_dRPhi, __pyx_n_s_RMinMax, __pyx_n_s_ZMinMax, __pyx_n_s_ind, __pyx_n_s_Out, __pyx_n_s_margin, __pyx_n_s_R, __pyx_n_s_Z, __pyx_n_s_dRPhirRef, __pyx_n_s_dPhir, __pyx_n_s_Ru, __pyx_n_s_dRPhir, __pyx_n_s_dRr, __pyx_n_s_dZr, __pyx_n_s_phi, __pyx_n_s_indR, __pyx_n_s_indZ, __pyx_n_s_NRPhi0, __pyx_n_s_NRPhi, __pyx_n_s_NR, __pyx_n_s_NZ, __pyx_n_s_Rn, __pyx_n_s_Zn, __pyx_n_s_NP, __pyx_n_s_Rratio, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_iiR, __pyx_n_s_iiZ, __pyx_n_s_iiphi, __pyx_n_s_Phi, __pyx_n_s_Pts, __pyx_n_s_dV); if (unlikely(!__pyx_tuple__182)) __PYX_ERR(0, 816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__182);
__Pyx_GIVEREF(__pyx_tuple__182);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_25_Ves_Vmesh_Tor_SubFromInd_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 816, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Vmesh_Tor_SubFromInd_cython, __pyx_t_1) < 0) __PYX_ERR(0, 816, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(8, 0, 35, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__182, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Vmesh_Tor_SubFromInd_cython, 816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(0, 816, __pyx_L1_error)
0817: double[::1] RMinMax, double[::1] ZMinMax,
0818: long[::1] ind, str Out='(X,Y,Z)',
+0819: double margin=_VSMALL):
__pyx_k__45 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0820: """ Return the desired submesh indicated by the (numerical) indices,
0821: for the desired resolution (dR,dZ,dRphi)
0822: """
0823: cdef double[::1] R, Z, dRPhirRef, dPhir, Ru, dRPhir
0824: cdef double dRr, dZr, phi
0825: cdef long[::1] indR, indZ, NRPhi0, NRPhi
+0826: cdef long NR, NZ, Rn, Zn, NP=len(ind), Rratio
__pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_ind);
__pyx_v_NP = __pyx_t_1;
+0827: cdef int ii=0, jj=0, iiR, iiZ, iiphi
__pyx_v_ii = 0; __pyx_v_jj = 0;
0828: cdef double[:,::1] Phi
+0829: cdef np.ndarray[double,ndim=2] Pts=np.empty((3,NP))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_NP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 829, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 829, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_Pts = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 829, __pyx_L1_error) } else {__pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; } } __pyx_t_6 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+0830: cdef np.ndarray[double,ndim=1] dV=np.empty((NP,))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_NP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dV.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_dV = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_dV.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 830, __pyx_L1_error) } else {__pyx_pybuffernd_dV.diminfo[0].strides = __pyx_pybuffernd_dV.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dV.diminfo[0].shape = __pyx_pybuffernd_dV.rcbuffer->pybuffer.shape[0]; } } __pyx_t_7 = 0; __pyx_v_dV = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
0831:
0832: # Get the actual R and Z resolutions and mesh elements
+0833: R, dRr, indR, NR = _Ves_mesh_dlfromL_cython(RMinMax, dR, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_RMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 833, __pyx_L1_error) /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 833, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_8 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_2,&__pyx_t_8}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_2,&__pyx_t_8}; __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 4) < 0) __PYX_ERR(0, 833, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 833, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_13 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_13.memview)) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_14 = __Pyx_PyInt_As_long(__pyx_t_8); if (unlikely((__pyx_t_14 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_R = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; __pyx_v_dRr = __pyx_t_12; __pyx_v_indR = __pyx_t_13; __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __pyx_v_NR = __pyx_t_14;
+0834: margin=margin)
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 833, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0835: Z, dZr, indZ, NZ = _Ves_mesh_dlfromL_cython(ZMinMax, dZ, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_ZMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dZ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_8 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 835, __pyx_L1_error) /* … */ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { PyObject* sequence = __pyx_t_8; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 835, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_3}; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 4) < 0) __PYX_ERR(0, 835, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 835, __pyx_L1_error) __pyx_L6_unpacking_done:; } __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_13 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_13.memview)) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_14 = __Pyx_PyInt_As_long(__pyx_t_3); if (unlikely((__pyx_t_14 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_Z = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; __pyx_v_dZr = __pyx_t_12; __pyx_v_indZ = __pyx_t_13; __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __pyx_v_NZ = __pyx_t_14;
+0836: margin=margin)
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 836, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_8) < 0) __PYX_ERR(0, 835, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0837: Rn, Zn = len(R), len(Z)
__pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_R); __pyx_t_15 = __Pyx_MemoryView_Len(__pyx_v_Z); __pyx_v_Rn = __pyx_t_1; __pyx_v_Zn = __pyx_t_15;
0838:
0839: # Number of Phi per R
+0840: dRPhirRef, dPhir = np.empty((NR,)), np.empty((NR,))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_NR); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_8 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_NR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_8 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 840, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_dRPhirRef = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; __pyx_v_dPhir = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL;
+0841: Ru, dRPhir = np.zeros((NR,)), np.nan*np.ones((NR,))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_NR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_8 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_NR); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_8 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 841, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_Ru = __pyx_t_16; __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; __pyx_v_dRPhir = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
+0842: NRPhi, NRPhi0 = np.empty((NR,),dtype=int), np.empty((NR+1,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_NR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 842, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_13.memview)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_NR + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 842, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 842, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_NRPhi = __pyx_t_13; __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL; __pyx_v_NRPhi0 = __pyx_t_17; __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL;
+0843: Rratio = int(Cceil(R[NR-1]/R[0]))
__pyx_t_18 = (__pyx_v_NR - 1); __pyx_t_19 = 0; __pyx_v_Rratio = ((long)ceil(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_18)) ))) / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_19)) ))))));
+0844: for ii in range(0,NR):
__pyx_t_14 = __pyx_v_NR;
__pyx_t_20 = __pyx_t_14;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_ii = __pyx_t_21;
+0845: NRPhi[ii] = <long>(Cceil(2.*Cpi*R[ii]/dRPhi))
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_23)) )) = ((long)ceil((((2. * M_PI) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_22)) )))) / __pyx_v_dRPhi)));
+0846: dRPhirRef[ii] = 2.*Cpi*R[ii]/<double>(NRPhi[ii])
__pyx_t_24 = __pyx_v_ii;
__pyx_t_25 = __pyx_v_ii;
__pyx_t_26 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_26)) )) = (((2. * M_PI) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_24)) )))) / ((double)(*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_25)) )))));
+0847: dPhir[ii] = 2.*Cpi/<double>(NRPhi[ii])
__pyx_t_27 = __pyx_v_ii;
__pyx_t_28 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_28)) )) = ((2. * M_PI) / ((double)(*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_27)) )))));
+0848: if ii==0:
__pyx_t_29 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_29) {
/* … */
goto __pyx_L9;
}
+0849: NRPhi0[ii] = 0
__pyx_t_30 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_30)) )) = 0;
+0850: Phi = np.empty((NR,NRPhi[ii]*Rratio+1))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_NR); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_31 = __pyx_v_ii; __pyx_t_3 = __Pyx_PyInt_From_long((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_31)) ))) * __pyx_v_Rratio) + 1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_8 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_32 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_8, PyBUF_WRITABLE); if (unlikely(!__pyx_t_32.memview)) __PYX_ERR(0, 850, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_Phi, 1); __pyx_v_Phi = __pyx_t_32; __pyx_t_32.memview = NULL; __pyx_t_32.data = NULL;
0851: else:
+0852: NRPhi0[ii] = NRPhi0[ii-1] + NRPhi[ii-1]*NZ
/*else*/ {
__pyx_t_33 = (__pyx_v_ii - 1);
__pyx_t_34 = (__pyx_v_ii - 1);
__pyx_t_35 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_35)) )) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_33)) ))) + ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_34)) ))) * __pyx_v_NZ));
}
__pyx_L9:;
+0853: for jj in range(0,NRPhi[ii]):
__pyx_t_36 = __pyx_v_ii;
__pyx_t_37 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_36)) )));
__pyx_t_38 = __pyx_t_37;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_38; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+0854: Phi[ii,jj] = -Cpi + (0.5+<double>jj)*dPhir[ii]
__pyx_t_40 = __pyx_v_ii;
if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 854, __pyx_L1_error) }
__pyx_t_41 = __pyx_v_ii;
__pyx_t_42 = __pyx_v_jj;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_41 * __pyx_v_Phi.strides[0]) )) + __pyx_t_42)) )) = ((-M_PI) + ((0.5 + ((double)__pyx_v_jj)) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_40)) )))));
}
}
0855:
+0856: if Out.lower()=='(x,y,z)':
__pyx_t_8 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 856, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_29 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_29 < 0)) __PYX_ERR(0, 856, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_29) { /* … */ goto __pyx_L12; }
+0857: for ii in range(0,NP):
__pyx_t_14 = __pyx_v_NP;
__pyx_t_20 = __pyx_t_14;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_ii = __pyx_t_21;
+0858: for jj in range(0,NR+1):
__pyx_t_37 = (__pyx_v_NR + 1);
__pyx_t_38 = __pyx_t_37;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_38; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+0859: if ind[ii]-NRPhi0[jj]<0.:
__pyx_t_43 = __pyx_v_ii;
__pyx_t_44 = __pyx_v_jj;
__pyx_t_29 = ((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_43)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_44)) )))) < 0.) != 0);
if (__pyx_t_29) {
/* … */
}
}
__pyx_L16_break:;
+0860: break
goto __pyx_L16_break;
+0861: iiR = jj-1
__pyx_v_iiR = (__pyx_v_jj - 1);
+0862: iiZ = (ind[ii] - NRPhi0[iiR])//NRPhi[iiR]
__pyx_t_45 = __pyx_v_ii;
__pyx_t_46 = __pyx_v_iiR;
__pyx_t_47 = __pyx_v_iiR;
__pyx_v_iiZ = (((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_45)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_46)) )))) / (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_47)) ))));
+0863: iiphi = ind[ii] - NRPhi0[iiR] - iiZ*NRPhi[iiR]
__pyx_t_48 = __pyx_v_ii;
__pyx_t_49 = __pyx_v_iiR;
__pyx_t_50 = __pyx_v_iiR;
__pyx_v_iiphi = (((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_48)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_49)) )))) - (__pyx_v_iiZ * (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_50)) )))));
+0864: phi = Phi[iiR,iiphi]
if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 864, __pyx_L1_error) }
__pyx_t_51 = __pyx_v_iiR;
__pyx_t_52 = __pyx_v_iiphi;
__pyx_v_phi = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_51 * __pyx_v_Phi.strides[0]) )) + __pyx_t_52)) )));
+0865: Pts[0,ii] = R[iiR]*Ccos(phi)
__pyx_t_53 = __pyx_v_iiR;
__pyx_t_54 = 0;
__pyx_t_55 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_54, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_55, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_53)) ))) * cos(__pyx_v_phi));
+0866: Pts[1,ii] = R[iiR]*Csin(phi)
__pyx_t_56 = __pyx_v_iiR;
__pyx_t_57 = 1;
__pyx_t_58 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_57, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_58, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_56)) ))) * sin(__pyx_v_phi));
+0867: Pts[2,ii] = Z[iiZ]
__pyx_t_59 = __pyx_v_iiZ;
__pyx_t_60 = 2;
__pyx_t_61 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_60, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_61, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Z.data) + __pyx_t_59)) )));
+0868: dV[ii] = dRr*dZr*dRPhirRef[iiR]
__pyx_t_62 = __pyx_v_iiR;
__pyx_t_63 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dV.rcbuffer->pybuffer.buf, __pyx_t_63, __pyx_pybuffernd_dV.diminfo[0].strides) = ((__pyx_v_dRr * __pyx_v_dZr) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_62)) ))));
+0869: if Ru[iiR]==0.:
__pyx_t_64 = __pyx_v_iiR;
__pyx_t_29 = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Ru.data) + __pyx_t_64)) ))) == 0.) != 0);
if (__pyx_t_29) {
/* … */
}
}
+0870: dRPhir[iiR] = dRPhirRef[iiR]
__pyx_t_65 = __pyx_v_iiR;
__pyx_t_66 = __pyx_v_iiR;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhir.data) + __pyx_t_66)) )) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_65)) )));
+0871: Ru[iiR] = 1.
__pyx_t_67 = __pyx_v_iiR;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Ru.data) + __pyx_t_67)) )) = 1.;
0872: else:
+0873: for ii in range(0,NP):
/*else*/ {
__pyx_t_14 = __pyx_v_NP;
__pyx_t_20 = __pyx_t_14;
for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
__pyx_v_ii = __pyx_t_21;
+0874: for jj in range(0,NR+1):
__pyx_t_37 = (__pyx_v_NR + 1);
__pyx_t_38 = __pyx_t_37;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_38; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+0875: if ind[ii]-NRPhi0[jj]<0.:
__pyx_t_68 = __pyx_v_ii;
__pyx_t_69 = __pyx_v_jj;
__pyx_t_29 = ((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_68)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_69)) )))) < 0.) != 0);
if (__pyx_t_29) {
/* … */
}
}
__pyx_L22_break:;
+0876: break
goto __pyx_L22_break;
+0877: iiR = jj-1
__pyx_v_iiR = (__pyx_v_jj - 1);
+0878: iiZ = (ind[ii] - NRPhi0[iiR])//NRPhi[iiR]
__pyx_t_70 = __pyx_v_ii;
__pyx_t_71 = __pyx_v_iiR;
__pyx_t_72 = __pyx_v_iiR;
__pyx_v_iiZ = (((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_70)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_71)) )))) / (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_72)) ))));
+0879: iiphi = ind[ii] - NRPhi0[iiR] - iiZ*NRPhi[iiR]
__pyx_t_73 = __pyx_v_ii;
__pyx_t_74 = __pyx_v_iiR;
__pyx_t_75 = __pyx_v_iiR;
__pyx_v_iiphi = (((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_73)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_74)) )))) - (__pyx_v_iiZ * (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_75)) )))));
+0880: Pts[0,ii] = R[iiR]
__pyx_t_76 = __pyx_v_iiR;
__pyx_t_77 = 0;
__pyx_t_78 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_77, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_78, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_R.data) + __pyx_t_76)) )));
+0881: Pts[1,ii] = Z[iiZ]
__pyx_t_79 = __pyx_v_iiZ;
__pyx_t_80 = 1;
__pyx_t_81 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_80, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_81, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Z.data) + __pyx_t_79)) )));
+0882: Pts[2,ii] = Phi[iiR,iiphi]
if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 882, __pyx_L1_error) }
__pyx_t_82 = __pyx_v_iiR;
__pyx_t_83 = __pyx_v_iiphi;
__pyx_t_84 = 2;
__pyx_t_85 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_84, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_85, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_82 * __pyx_v_Phi.strides[0]) )) + __pyx_t_83)) )));
+0883: dV[ii] = dRr*dZr*dRPhirRef[iiR]
__pyx_t_86 = __pyx_v_iiR;
__pyx_t_87 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dV.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_dV.diminfo[0].strides) = ((__pyx_v_dRr * __pyx_v_dZr) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_86)) ))));
+0884: if Ru[iiR]==0.:
__pyx_t_88 = __pyx_v_iiR;
__pyx_t_29 = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Ru.data) + __pyx_t_88)) ))) == 0.) != 0);
if (__pyx_t_29) {
/* … */
}
}
}
__pyx_L12:;
+0885: dRPhir[iiR] = dRPhirRef[iiR]
__pyx_t_89 = __pyx_v_iiR;
__pyx_t_90 = __pyx_v_iiR;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhir.data) + __pyx_t_90)) )) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_89)) )));
+0886: Ru[iiR] = 1.
__pyx_t_91 = __pyx_v_iiR;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_Ru.data) + __pyx_t_91)) )) = 1.;
0887:
+0888: return Pts, dV, dRr, dZr, np.asarray(dRPhir)[~np.isnan(dRPhir)]
__Pyx_XDECREF(__pyx_r); __pyx_t_8 = PyFloat_FromDouble(__pyx_v_dRr); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dZr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dRPhir, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_isnan); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dRPhir, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_92 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_92 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_92)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_92); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_4 = (__pyx_t_92) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_92, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_3); __Pyx_XDECREF(__pyx_t_92); __pyx_t_92 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Invert(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dV)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dV)); PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_dV)); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_t_4); __pyx_t_8 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_9; __pyx_t_9 = 0; goto __pyx_L0;
0889:
0890:
0891:
0892: ########################################################
0893: ########################################################
0894: # Meshing - Volume - Lin
0895: ########################################################
0896:
0897:
+0898: def _Ves_Vmesh_Lin_SubFromD_cython(double dX, double dY, double dZ,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_27_Ves_Vmesh_Lin_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_26_Ves_Vmesh_Lin_SubFromD_cython[] = " Return the desired submesh indicated by the limits (DX,DY,DZ),\n for the desired resolution (dX,dY,dZ)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_27_Ves_Vmesh_Lin_SubFromD_cython = {"_Ves_Vmesh_Lin_SubFromD_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_27_Ves_Vmesh_Lin_SubFromD_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_26_Ves_Vmesh_Lin_SubFromD_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_27_Ves_Vmesh_Lin_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_dX;
double __pyx_v_dY;
double __pyx_v_dZ;
__Pyx_memviewslice __pyx_v_XMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_YMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ZMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_DX = 0;
PyObject *__pyx_v_DY = 0;
PyObject *__pyx_v_DZ = 0;
PyObject *__pyx_v_VPoly = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Lin_SubFromD_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dX,&__pyx_n_s_dY,&__pyx_n_s_dZ,&__pyx_n_s_XMinMax,&__pyx_n_s_YMinMax,&__pyx_n_s_ZMinMax,&__pyx_n_s_DX,&__pyx_n_s_DY,&__pyx_n_s_DZ,&__pyx_n_s_VPoly,&__pyx_n_s_margin,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_26_Ves_Vmesh_Lin_SubFromD_cython(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_dX, double __pyx_v_dY, double __pyx_v_dZ, __Pyx_memviewslice __pyx_v_XMinMax, __Pyx_memviewslice __pyx_v_YMinMax, __Pyx_memviewslice __pyx_v_ZMinMax, PyObject *__pyx_v_DX, PyObject *__pyx_v_DY, PyObject *__pyx_v_DZ, PyObject *__pyx_v_VPoly, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_X = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Y = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Z = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dXr;
double __pyx_v_dYr;
double __pyx_v_dZr;
double __pyx_v_dV;
PyArrayObject *__pyx_v_indX = 0;
PyArrayObject *__pyx_v_indY = 0;
PyArrayObject *__pyx_v_indZ = 0;
int __pyx_v_NX;
int __pyx_v_NY;
CYTHON_UNUSED int __pyx_v_NZ;
int __pyx_v_Xn;
int __pyx_v_Yn;
int __pyx_v_Zn;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_ind = 0;
PyObject *__pyx_v_indin = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indX;
__Pyx_Buffer __pyx_pybuffer_indX;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indY;
__Pyx_Buffer __pyx_pybuffer_indY;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indZ;
__Pyx_Buffer __pyx_pybuffer_indZ;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Lin_SubFromD_cython", 0);
__pyx_pybuffer_indX.pybuffer.buf = NULL;
__pyx_pybuffer_indX.refcount = 0;
__pyx_pybuffernd_indX.data = NULL;
__pyx_pybuffernd_indX.rcbuffer = &__pyx_pybuffer_indX;
__pyx_pybuffer_indY.pybuffer.buf = NULL;
__pyx_pybuffer_indY.refcount = 0;
__pyx_pybuffernd_indY.data = NULL;
__pyx_pybuffernd_indY.rcbuffer = &__pyx_pybuffer_indY;
__pyx_pybuffer_indZ.pybuffer.buf = NULL;
__pyx_pybuffer_indZ.refcount = 0;
__pyx_pybuffernd_indZ.data = NULL;
__pyx_pybuffernd_indZ.rcbuffer = &__pyx_pybuffer_indZ;
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
__Pyx_XDECREF(__pyx_t_19);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_22);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Lin_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_X, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Y, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Z, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_indX);
__Pyx_XDECREF((PyObject *)__pyx_v_indY);
__Pyx_XDECREF((PyObject *)__pyx_v_indZ);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_indin);
__PYX_XDEC_MEMVIEW(&__pyx_v_XMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_YMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ZMinMax, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__184 = PyTuple_Pack(30, __pyx_n_s_dX, __pyx_n_s_dY, __pyx_n_s_dZ, __pyx_n_s_XMinMax, __pyx_n_s_YMinMax, __pyx_n_s_ZMinMax, __pyx_n_s_DX, __pyx_n_s_DY, __pyx_n_s_DZ, __pyx_n_s_VPoly, __pyx_n_s_margin, __pyx_n_s_X, __pyx_n_s_Y, __pyx_n_s_Z, __pyx_n_s_dXr, __pyx_n_s_dYr, __pyx_n_s_dZr, __pyx_n_s_dV, __pyx_n_s_indX, __pyx_n_s_indY, __pyx_n_s_indZ, __pyx_n_s_NX, __pyx_n_s_NY, __pyx_n_s_NZ, __pyx_n_s_Xn, __pyx_n_s_Yn, __pyx_n_s_Zn, __pyx_n_s_Pts, __pyx_n_s_ind, __pyx_n_s_indin); if (unlikely(!__pyx_tuple__184)) __PYX_ERR(0, 898, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__184);
__Pyx_GIVEREF(__pyx_tuple__184);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_27_Ves_Vmesh_Lin_SubFromD_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 898, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Vmesh_Lin_SubFromD_cython, __pyx_t_1) < 0) __PYX_ERR(0, 898, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(11, 0, 30, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__184, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Vmesh_Lin_SubFromD_cython, 898, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(0, 898, __pyx_L1_error)
0899: double[::1] XMinMax, double[::1] YMinMax,
0900: double[::1] ZMinMax,
+0901: DX=None, DY=None, DZ=None, VPoly=None,
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)Py_None);
values[9] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dX)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dY)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromD_cython", 0, 6, 11, 1); __PYX_ERR(0, 898, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dZ)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromD_cython", 0, 6, 11, 2); __PYX_ERR(0, 898, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_XMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromD_cython", 0, 6, 11, 3); __PYX_ERR(0, 898, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_YMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromD_cython", 0, 6, 11, 4); __PYX_ERR(0, 898, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ZMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromD_cython", 0, 6, 11, 5); __PYX_ERR(0, 898, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DX);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DY);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DZ);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Vmesh_Lin_SubFromD_cython") < 0)) __PYX_ERR(0, 898, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_dX = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_dX == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 898, __pyx_L3_error)
__pyx_v_dY = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dY == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 898, __pyx_L3_error)
__pyx_v_dZ = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dZ == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 898, __pyx_L3_error)
__pyx_v_XMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_XMinMax.memview)) __PYX_ERR(0, 899, __pyx_L3_error)
__pyx_v_YMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_YMinMax.memview)) __PYX_ERR(0, 899, __pyx_L3_error)
__pyx_v_ZMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ZMinMax.memview)) __PYX_ERR(0, 900, __pyx_L3_error)
__pyx_v_DX = values[6];
__pyx_v_DY = values[7];
__pyx_v_DZ = values[8];
__pyx_v_VPoly = values[9];
if (values[10]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 902, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__46;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromD_cython", 0, 6, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 898, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Lin_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_26_Ves_Vmesh_Lin_SubFromD_cython(__pyx_self, __pyx_v_dX, __pyx_v_dY, __pyx_v_dZ, __pyx_v_XMinMax, __pyx_v_YMinMax, __pyx_v_ZMinMax, __pyx_v_DX, __pyx_v_DY, __pyx_v_DZ, __pyx_v_VPoly, __pyx_v_margin);
+0902: double margin=_VSMALL):
__pyx_k__46 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0903: """ Return the desired submesh indicated by the limits (DX,DY,DZ),
0904: for the desired resolution (dX,dY,dZ)
0905: """
0906: cdef double[::1] X, Y, Z
0907: cdef double dXr, dYr, dZr, dV
0908: cdef np.ndarray[long,ndim=1] indX, indY, indZ
0909: cdef int NX, NY, NZ, Xn, Yn, Zn
0910: cdef np.ndarray[double,ndim=2] Pts
0911: cdef np.ndarray[long,ndim=1] ind
0912:
0913: # Get the actual X, Y and Z resolutions and mesh elements
+0914: X, dXr, indX, NX = _Ves_mesh_dlfromL_cython(XMinMax, dX, DX, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_XMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dX); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(__pyx_v_DX); __Pyx_GIVEREF(__pyx_v_DX); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_DX); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 914, __pyx_L1_error) /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 914, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 914, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 914, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 914, __pyx_L1_error) __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_X = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dXr = __pyx_t_9; __pyx_t_11 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_v_indX, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_indX.diminfo[0].strides = __pyx_pybuffernd_indX.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indX.diminfo[0].shape = __pyx_pybuffernd_indX.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 914, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_indX = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_NX = __pyx_t_10;
+0915: margin=margin)
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_margin, __pyx_t_2) < 0) __PYX_ERR(0, 914, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0916: Y, dYr, indY, NY = _Ves_mesh_dlfromL_cython(YMinMax, dY, DY, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_YMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_dY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_INCREF(__pyx_v_DY); __Pyx_GIVEREF(__pyx_v_DY); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_DY); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 916, __pyx_L1_error) /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 916, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 916, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 916, __pyx_L1_error) __pyx_L6_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 916, __pyx_L1_error) __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_Y = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dYr = __pyx_t_9; __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY.rcbuffer->pybuffer, (PyObject*)__pyx_v_indY, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; } __pyx_pybuffernd_indY.diminfo[0].strides = __pyx_pybuffernd_indY.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indY.diminfo[0].shape = __pyx_pybuffernd_indY.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 916, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_indY = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_v_NY = __pyx_t_10;
+0917: margin=margin)
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 916, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0918: Z, dZr, indZ, NZ = _Ves_mesh_dlfromL_cython(ZMinMax, dZ, DZ, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_ZMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dZ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_INCREF(__pyx_v_DZ); __Pyx_GIVEREF(__pyx_v_DZ); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_DZ); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 918, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 918, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); __pyx_t_1 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_1}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_1}; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 918, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 918, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 918, __pyx_L1_error) __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Z = __pyx_t_8; __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_v_dZr = __pyx_t_9; __pyx_t_11 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_indZ.diminfo[0].strides = __pyx_pybuffernd_indZ.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ.diminfo[0].shape = __pyx_pybuffernd_indZ.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 918, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_indZ = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __pyx_v_NZ = __pyx_t_10;
+0919: margin=margin)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 918, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0920: Xn, Yn, Zn = len(X), len(Y), len(Z)
__pyx_t_16 = __Pyx_MemoryView_Len(__pyx_v_X); __pyx_t_17 = __Pyx_MemoryView_Len(__pyx_v_Y); __pyx_t_18 = __Pyx_MemoryView_Len(__pyx_v_Z); __pyx_v_Xn = __pyx_t_16; __pyx_v_Yn = __pyx_t_17; __pyx_v_Zn = __pyx_t_18;
0921:
+0922: Pts = np.array([np.tile(X,(Yn*Zn,1)).flatten(),
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tile); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_X, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_19 = __Pyx_PyInt_From_int((__pyx_v_Yn * __pyx_v_Zn)); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_20 = PyTuple_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_20, 1, __pyx_int_1); __pyx_t_19 = 0; __pyx_t_19 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_2, __pyx_t_20}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_2, __pyx_t_20}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; } else #endif { __pyx_t_21 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_10, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_10, __pyx_t_20); __pyx_t_2 = 0; __pyx_t_20 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_21, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_flatten); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_22 = PyList_New(3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_22, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_22, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_20); PyList_SET_ITEM(__pyx_t_22, 2, __pyx_t_20); __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_t_20 = 0; __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_20, __pyx_t_22) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_22); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 922, __pyx_L1_error) __pyx_t_25 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 922, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+0923: np.tile(np.repeat(Y,Xn),(Zn,1)).flatten(),
__Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_tile); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_repeat); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_Y, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_Xn); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_23 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) { __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_23)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_23); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[3] = {__pyx_t_23, __pyx_t_2, __pyx_t_22}; __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[3] = {__pyx_t_23, __pyx_t_2, __pyx_t_22}; __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } else #endif { __pyx_t_24 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); if (__pyx_t_23) { __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_23); __pyx_t_23 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_10, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_10, __pyx_t_22); __pyx_t_2 = 0; __pyx_t_22 = 0; __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_24, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_Zn); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_24 = PyTuple_New(2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_19); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_int_1); __pyx_t_19 = 0; __pyx_t_19 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_21, __pyx_t_24}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_21, __pyx_t_24}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } else #endif { __pyx_t_22 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_10, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_10, __pyx_t_24); __pyx_t_21 = 0; __pyx_t_24 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_22, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_flatten); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_6 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_20); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0924: np.repeat(Z,Xn*Yn)])
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_repeat); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_Z, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_24 = __Pyx_PyInt_From_int((__pyx_v_Xn * __pyx_v_Yn)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_21 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_21)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_21); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[3] = {__pyx_t_21, __pyx_t_4, __pyx_t_24}; __pyx_t_20 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[3] = {__pyx_t_21, __pyx_t_4, __pyx_t_24}; __pyx_t_20 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0; __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; } else #endif { __pyx_t_19 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); if (__pyx_t_21) { __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_21); __pyx_t_21 = NULL; } __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_10, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_10, __pyx_t_24); __pyx_t_4 = 0; __pyx_t_24 = 0; __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_19, NULL); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+0925: ind = np.repeat(NX*NY*indZ,Xn*Yn) + \
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_repeat); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_NX * __pyx_v_NY)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_20 = PyNumber_Multiply(__pyx_t_5, ((PyObject *)__pyx_v_indZ)); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_Xn * __pyx_v_Yn)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_20, __pyx_t_5}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_20, __pyx_t_5}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_10, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_10, __pyx_t_5); __pyx_t_20 = 0; __pyx_t_5 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; /* … */ __pyx_t_20 = PyNumber_Add(__pyx_t_3, __pyx_t_22); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+0926: np.tile(np.repeat(NX*indY,Xn),(Zn,1)).flatten() + \
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_tile); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_repeat); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_NX); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_24 = PyNumber_Multiply(__pyx_t_6, ((PyObject *)__pyx_v_indY)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_Xn); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_19); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_19, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_24, __pyx_t_6}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_24, __pyx_t_6}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_21 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_10, __pyx_t_24); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_10, __pyx_t_6); __pyx_t_24 = 0; __pyx_t_6 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_21, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_Zn); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_19); __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_19); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_int_1); __pyx_t_19 = 0; __pyx_t_19 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_20))) { __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_19)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_19); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_5, __pyx_t_21}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) { PyObject *__pyx_temp[3] = {__pyx_t_19, __pyx_t_5, __pyx_t_21}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_20, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif { __pyx_t_6 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (__pyx_t_19) { __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_19); __pyx_t_19 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_10, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_10, __pyx_t_21); __pyx_t_5 = 0; __pyx_t_21 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flatten); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_20))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_20); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_20); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_20, function); } } __pyx_t_22 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_20, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_20); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; /* … */ __pyx_t_6 = PyNumber_Add(__pyx_t_20, __pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 926, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 926, __pyx_L1_error) __pyx_t_26 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_26, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 925, __pyx_L1_error) } __pyx_t_26 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
+0927: np.tile(indX,(Yn*Zn,1)).flatten()
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tile); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_Yn * __pyx_v_Zn)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_1); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_int_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; __pyx_t_10 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_10 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_indX), __pyx_t_21}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_indX), __pyx_t_21}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indX)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indX)); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_10, ((PyObject *)__pyx_v_indX)); __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_10, __pyx_t_21); __pyx_t_21 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flatten); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_22 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0928: dV = dXr*dYr*dZr
__pyx_v_dV = ((__pyx_v_dXr * __pyx_v_dYr) * __pyx_v_dZr);
0929:
+0930: if VPoly is not None:
__pyx_t_27 = (__pyx_v_VPoly != Py_None);
__pyx_t_28 = (__pyx_t_27 != 0);
if (__pyx_t_28) {
/* … */
}
+0931: indin = Path(VPoly.T).contains_points(Pts[1:,:].T, transform=None,
__Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_Path); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_VPoly, __pyx_n_s_T); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_22); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_22, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_3, __pyx_t_20) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_t_20); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_tuple__35); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_T); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_20); __pyx_t_20 = 0; __pyx_t_20 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 931, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 931, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_6, __pyx_t_20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; __pyx_v_indin = __pyx_t_3; __pyx_t_3 = 0;
0932: radius=0.0)
+0933: Pts, ind = Pts[:,indin], ind[indin]
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_indin); __pyx_t_20 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_20) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_20, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 933, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_indin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 933, __pyx_L1_error) __pyx_t_25 = ((PyArrayObject *)__pyx_t_20); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 933, __pyx_L1_error) } __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_20)); __pyx_t_20 = 0; __pyx_t_26 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_26, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 933, __pyx_L1_error) } __pyx_t_26 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
0934:
+0935: return Pts, dV, ind.astype(int), dXr, dYr, dZr
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dV); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ind), __pyx_n_s_astype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_22 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_22)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_22); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_20 = (__pyx_t_22) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_22, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_20); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_22 = PyFloat_FromDouble(__pyx_v_dYr); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_22); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dZr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_21 = PyTuple_New(6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_21, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_20); PyTuple_SET_ITEM(__pyx_t_21, 2, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_21, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_21, 4, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_21, 5, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_20 = 0; __pyx_t_6 = 0; __pyx_t_22 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_21; __pyx_t_21 = 0; goto __pyx_L0;
0936:
0937:
+0938: def _Ves_Vmesh_Lin_SubFromInd_cython(double dX, double dY, double dZ,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_29_Ves_Vmesh_Lin_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_28_Ves_Vmesh_Lin_SubFromInd_cython[] = " Return the desired submesh indicated by the limits (DX,DY,DZ),\n for the desired resolution (dX,dY,dZ)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_29_Ves_Vmesh_Lin_SubFromInd_cython = {"_Ves_Vmesh_Lin_SubFromInd_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_29_Ves_Vmesh_Lin_SubFromInd_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_28_Ves_Vmesh_Lin_SubFromInd_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_29_Ves_Vmesh_Lin_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_dX;
double __pyx_v_dY;
double __pyx_v_dZ;
__Pyx_memviewslice __pyx_v_XMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_YMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ZMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_ind = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Lin_SubFromInd_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dX,&__pyx_n_s_dY,&__pyx_n_s_dZ,&__pyx_n_s_XMinMax,&__pyx_n_s_YMinMax,&__pyx_n_s_ZMinMax,&__pyx_n_s_ind,&__pyx_n_s_margin,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dX)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dY)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, 1); __PYX_ERR(0, 938, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dZ)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, 2); __PYX_ERR(0, 938, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_XMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, 3); __PYX_ERR(0, 938, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_YMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, 4); __PYX_ERR(0, 938, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ZMinMax)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, 5); __PYX_ERR(0, 938, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, 6); __PYX_ERR(0, 938, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Vmesh_Lin_SubFromInd_cython") < 0)) __PYX_ERR(0, 938, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_dX = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_dX == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
__pyx_v_dY = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dY == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
__pyx_v_dZ = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dZ == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 938, __pyx_L3_error)
__pyx_v_XMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_XMinMax.memview)) __PYX_ERR(0, 939, __pyx_L3_error)
__pyx_v_YMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_YMinMax.memview)) __PYX_ERR(0, 939, __pyx_L3_error)
__pyx_v_ZMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ZMinMax.memview)) __PYX_ERR(0, 940, __pyx_L3_error)
__pyx_v_ind = ((PyArrayObject *)values[6]);
if (values[7]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 942, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__47;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Vmesh_Lin_SubFromInd_cython", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 938, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Lin_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ind), __pyx_ptype_5numpy_ndarray, 1, "ind", 0))) __PYX_ERR(0, 941, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_28_Ves_Vmesh_Lin_SubFromInd_cython(__pyx_self, __pyx_v_dX, __pyx_v_dY, __pyx_v_dZ, __pyx_v_XMinMax, __pyx_v_YMinMax, __pyx_v_ZMinMax, __pyx_v_ind, __pyx_v_margin);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_28_Ves_Vmesh_Lin_SubFromInd_cython(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_dX, double __pyx_v_dY, double __pyx_v_dZ, __Pyx_memviewslice __pyx_v_XMinMax, __Pyx_memviewslice __pyx_v_YMinMax, __Pyx_memviewslice __pyx_v_ZMinMax, PyArrayObject *__pyx_v_ind, double __pyx_v_margin) {
PyArrayObject *__pyx_v_X = 0;
PyArrayObject *__pyx_v_Y = 0;
PyArrayObject *__pyx_v_Z = 0;
double __pyx_v_dXr;
double __pyx_v_dYr;
double __pyx_v_dZr;
double __pyx_v_dV;
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_bla = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_indX = 0;
PyArrayObject *__pyx_v_indY = 0;
PyArrayObject *__pyx_v_indZ = 0;
int __pyx_v_NX;
int __pyx_v_NY;
CYTHON_UNUSED int __pyx_v_NZ;
PyArrayObject *__pyx_v_Pts = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_X;
__Pyx_Buffer __pyx_pybuffer_X;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Y;
__Pyx_Buffer __pyx_pybuffer_Y;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Z;
__Pyx_Buffer __pyx_pybuffer_Z;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indX;
__Pyx_Buffer __pyx_pybuffer_indX;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indY;
__Pyx_Buffer __pyx_pybuffer_indY;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indZ;
__Pyx_Buffer __pyx_pybuffer_indZ;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Vmesh_Lin_SubFromInd_cython", 0);
__pyx_pybuffer_X.pybuffer.buf = NULL;
__pyx_pybuffer_X.refcount = 0;
__pyx_pybuffernd_X.data = NULL;
__pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X;
__pyx_pybuffer_Y.pybuffer.buf = NULL;
__pyx_pybuffer_Y.refcount = 0;
__pyx_pybuffernd_Y.data = NULL;
__pyx_pybuffernd_Y.rcbuffer = &__pyx_pybuffer_Y;
__pyx_pybuffer_Z.pybuffer.buf = NULL;
__pyx_pybuffer_Z.refcount = 0;
__pyx_pybuffernd_Z.data = NULL;
__pyx_pybuffernd_Z.rcbuffer = &__pyx_pybuffer_Z;
__pyx_pybuffer_indX.pybuffer.buf = NULL;
__pyx_pybuffer_indX.refcount = 0;
__pyx_pybuffernd_indX.data = NULL;
__pyx_pybuffernd_indX.rcbuffer = &__pyx_pybuffer_indX;
__pyx_pybuffer_indY.pybuffer.buf = NULL;
__pyx_pybuffer_indY.refcount = 0;
__pyx_pybuffernd_indY.data = NULL;
__pyx_pybuffernd_indY.rcbuffer = &__pyx_pybuffer_indY;
__pyx_pybuffer_indZ.pybuffer.buf = NULL;
__pyx_pybuffer_indZ.refcount = 0;
__pyx_pybuffernd_indZ.data = NULL;
__pyx_pybuffernd_indZ.rcbuffer = &__pyx_pybuffer_indZ;
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 938, __pyx_L1_error)
}
__pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
__Pyx_XDECREF(__pyx_t_17);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Vmesh_Lin_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_X);
__Pyx_XDECREF((PyObject *)__pyx_v_Y);
__Pyx_XDECREF((PyObject *)__pyx_v_Z);
__PYX_XDEC_MEMVIEW(&__pyx_v_bla, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_indX);
__Pyx_XDECREF((PyObject *)__pyx_v_indY);
__Pyx_XDECREF((PyObject *)__pyx_v_indZ);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__PYX_XDEC_MEMVIEW(&__pyx_v_XMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_YMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ZMinMax, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__186 = PyTuple_Pack(26, __pyx_n_s_dX, __pyx_n_s_dY, __pyx_n_s_dZ, __pyx_n_s_XMinMax, __pyx_n_s_YMinMax, __pyx_n_s_ZMinMax, __pyx_n_s_ind, __pyx_n_s_margin, __pyx_n_s_X, __pyx_n_s_Y, __pyx_n_s_Z, __pyx_n_s_dXr, __pyx_n_s_dYr, __pyx_n_s_dZr, __pyx_n_s_dV, __pyx_n_s_bla, __pyx_n_s_indX, __pyx_n_s_indY, __pyx_n_s_indZ, __pyx_n_s_NX, __pyx_n_s_NY, __pyx_n_s_NZ, __pyx_n_s_Xn, __pyx_n_s_Yn, __pyx_n_s_Zn, __pyx_n_s_Pts); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(0, 938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__186);
__Pyx_GIVEREF(__pyx_tuple__186);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_29_Ves_Vmesh_Lin_SubFromInd_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Vmesh_Lin_SubFromInd_cython, __pyx_t_1) < 0) __PYX_ERR(0, 938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(8, 0, 26, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Vmesh_Lin_SubFromInd_cython, 938, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(0, 938, __pyx_L1_error)
0939: double[::1] XMinMax, double[::1] YMinMax,
0940: double[::1] ZMinMax,
0941: np.ndarray[long,ndim=1] ind,
+0942: double margin=_VSMALL):
__pyx_k__47 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
0943: """ Return the desired submesh indicated by the limits (DX,DY,DZ),
0944: for the desired resolution (dX,dY,dZ)
0945: """
0946:
0947: cdef np.ndarray[double,ndim=1] X, Y, Z
0948: cdef double dXr, dYr, dZr, dV
0949: cdef long[::1] bla
0950: cdef np.ndarray[long,ndim=1] indX, indY, indZ
0951: cdef int NX, NY, NZ, Xn, Yn, Zn
0952: cdef np.ndarray[double,ndim=2] Pts
0953:
0954: # Get the actual X, Y and Z resolutions and mesh elements
+0955: X, dXr, bla, NX = _Ves_mesh_dlfromL_cython(XMinMax, dX, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_XMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dX); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 955, __pyx_L1_error) /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 955, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_1,&__pyx_t_5}; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 955, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 955, __pyx_L1_error) __pyx_L4_unpacking_done:; } if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 955, __pyx_L1_error) __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 955, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_X = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __pyx_v_dXr = __pyx_t_8; __pyx_v_bla = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_NX = __pyx_t_10;
+0956: margin=margin)
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_margin, __pyx_t_2) < 0) __PYX_ERR(0, 955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0957: Y, dYr, bla, NY = _Ves_mesh_dlfromL_cython(YMinMax, dY, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_YMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_dY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 957, __pyx_L1_error) /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 957, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_2,&__pyx_t_3}; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 957, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 957, __pyx_L1_error) __pyx_L6_unpacking_done:; } if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 957, __pyx_L1_error) __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_11 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y.rcbuffer->pybuffer, (PyObject*)__pyx_v_Y, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; } __pyx_pybuffernd_Y.diminfo[0].strides = __pyx_pybuffernd_Y.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Y.diminfo[0].shape = __pyx_pybuffernd_Y.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 957, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_Y = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_dYr = __pyx_t_8; __PYX_XDEC_MEMVIEW(&__pyx_v_bla, 1); __pyx_v_bla = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_NY = __pyx_t_10;
+0958: margin=margin)
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 957, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0959: Z, dZr, bla, NZ = _Ves_mesh_dlfromL_cython(ZMinMax, dZ, None, Lim=True,
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_ZMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dZ); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 959, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 959, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); __pyx_t_1 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_1}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_4,&__pyx_t_5,&__pyx_t_1}; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(0, 959, __pyx_L1_error) __pyx_t_7 = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_7 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 959, __pyx_L1_error) __pyx_L8_unpacking_done:; } if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 959, __pyx_L1_error) __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z.rcbuffer->pybuffer, (PyObject*)__pyx_t_11, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z.rcbuffer->pybuffer, (PyObject*)__pyx_v_Z, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_Z.diminfo[0].strides = __pyx_pybuffernd_Z.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Z.diminfo[0].shape = __pyx_pybuffernd_Z.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 959, __pyx_L1_error) } __pyx_t_11 = 0; __pyx_v_Z = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dZr = __pyx_t_8; __PYX_XDEC_MEMVIEW(&__pyx_v_bla, 1); __pyx_v_bla = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_v_NZ = __pyx_t_10;
+0960: margin=margin)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 960, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
0961:
+0962: indZ = ind // (NX*NY)
__pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_NX * __pyx_v_NY)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_FloorDivide(((PyObject *)__pyx_v_ind), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 962, __pyx_L1_error) __pyx_t_16 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; } __pyx_pybuffernd_indZ.diminfo[0].strides = __pyx_pybuffernd_indZ.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ.diminfo[0].shape = __pyx_pybuffernd_indZ.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 962, __pyx_L1_error) } __pyx_t_16 = 0; __pyx_v_indZ = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+0963: indY = (ind - NX*NY*indZ) // NX
__pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_NX * __pyx_v_NY)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, ((PyObject *)__pyx_v_indZ)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Subtract(((PyObject *)__pyx_v_ind), __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NX); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_FloorDivide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 963, __pyx_L1_error) __pyx_t_16 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY.rcbuffer->pybuffer, (PyObject*)__pyx_v_indY, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_indY.diminfo[0].strides = __pyx_pybuffernd_indY.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indY.diminfo[0].shape = __pyx_pybuffernd_indY.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 963, __pyx_L1_error) } __pyx_t_16 = 0; __pyx_v_indY = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
+0964: indX = ind - NX*NY*indZ - NX*indY
__pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_NX * __pyx_v_NY)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, ((PyObject *)__pyx_v_indZ)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Subtract(((PyObject *)__pyx_v_ind), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NX); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, ((PyObject *)__pyx_v_indY)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 964, __pyx_L1_error) __pyx_t_16 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_14, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_v_indX, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_14, __pyx_t_13); } __pyx_t_15 = __pyx_t_14 = __pyx_t_13 = 0; } __pyx_pybuffernd_indX.diminfo[0].strides = __pyx_pybuffernd_indX.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indX.diminfo[0].shape = __pyx_pybuffernd_indX.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 964, __pyx_L1_error) } __pyx_t_16 = 0; __pyx_v_indX = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+0965: Pts = np.array([X[indX.astype(int)],
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_indX), __pyx_n_s_astype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_X), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 965, __pyx_L1_error) __pyx_t_18 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_14, __pyx_t_15); } __pyx_t_13 = __pyx_t_14 = __pyx_t_15 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 965, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+0966: Y[indY.astype(int)],
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_indY), __pyx_n_s_astype); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Y), __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0967: Z[indZ.astype(int)]])
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_indZ), __pyx_n_s_astype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_17 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_17)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_17); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_17, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z), __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0968: dV = dXr*dYr*dZr
__pyx_v_dV = ((__pyx_v_dXr * __pyx_v_dYr) * __pyx_v_dZr);
0969:
+0970: return Pts, dV, dXr, dYr, dZr
__Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dV); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_dYr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_dZr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_t_6); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
0971:
0972:
0973:
0974: ########################################################
0975: ########################################################
0976: # Meshing - Surface - Tor
0977: ########################################################
0978:
+0979: def _getBoundsInter2AngSeg(bool Full, double Phi0, double Phi1,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_31_getBoundsInter2AngSeg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_30_getBoundsInter2AngSeg[] = " Return Inter=True if an intersection exist (all angles in radians\n in [-pi;pi])\n\n If Inter, return Bounds, a list of tuples indicating the segments defining\n the intersection, with\n The intervals are ordered from lowest index to highest index (with respect\n to [Phi0,Phi1])\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_31_getBoundsInter2AngSeg = {"_getBoundsInter2AngSeg", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_31_getBoundsInter2AngSeg, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_30_getBoundsInter2AngSeg};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_31_getBoundsInter2AngSeg(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyBoolObject *__pyx_v_Full = 0;
double __pyx_v_Phi0;
double __pyx_v_Phi1;
double __pyx_v_DPhi0;
double __pyx_v_DPhi1;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_getBoundsInter2AngSeg (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Full,&__pyx_n_s_Phi0,&__pyx_n_s_Phi1,&__pyx_n_s_DPhi0,&__pyx_n_s_DPhi1,0};
PyObject* values[5] = {0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Full)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Phi0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_getBoundsInter2AngSeg", 1, 5, 5, 1); __PYX_ERR(0, 979, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Phi1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_getBoundsInter2AngSeg", 1, 5, 5, 2); __PYX_ERR(0, 979, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DPhi0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_getBoundsInter2AngSeg", 1, 5, 5, 3); __PYX_ERR(0, 979, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DPhi1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_getBoundsInter2AngSeg", 1, 5, 5, 4); __PYX_ERR(0, 979, __pyx_L3_error)
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_getBoundsInter2AngSeg") < 0)) __PYX_ERR(0, 979, __pyx_L3_error)
}
} else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
goto __pyx_L5_argtuple_error;
} else {
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
}
__pyx_v_Full = ((PyBoolObject *)values[0]);
__pyx_v_Phi0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Phi0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L3_error)
__pyx_v_Phi1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Phi1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 979, __pyx_L3_error)
__pyx_v_DPhi0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_DPhi0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 980, __pyx_L3_error)
__pyx_v_DPhi1 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_DPhi1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 980, __pyx_L3_error)
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_getBoundsInter2AngSeg", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 979, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._getBoundsInter2AngSeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Full), __pyx_ptype_7cpython_4bool_bool, 1, "Full", 0))) __PYX_ERR(0, 979, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_30_getBoundsInter2AngSeg(__pyx_self, __pyx_v_Full, __pyx_v_Phi0, __pyx_v_Phi1, __pyx_v_DPhi0, __pyx_v_DPhi1);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_30_getBoundsInter2AngSeg(CYTHON_UNUSED PyObject *__pyx_self, PyBoolObject *__pyx_v_Full, double __pyx_v_Phi0, double __pyx_v_Phi1, double __pyx_v_DPhi0, double __pyx_v_DPhi1) {
PyObject *__pyx_v_Bounds = NULL;
int __pyx_v_Inter;
PyObject *__pyx_v_Faces = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_getBoundsInter2AngSeg", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("tofu.geom._GG03._getBoundsInter2AngSeg", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_Bounds);
__Pyx_XDECREF(__pyx_v_Faces);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__188 = PyTuple_Pack(8, __pyx_n_s_Full, __pyx_n_s_Phi0, __pyx_n_s_Phi1, __pyx_n_s_DPhi0, __pyx_n_s_DPhi1, __pyx_n_s_Bounds, __pyx_n_s_Inter, __pyx_n_s_Faces); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(0, 979, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__188);
__Pyx_GIVEREF(__pyx_tuple__188);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_31_getBoundsInter2AngSeg, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 979, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_getBoundsInter2AngSeg, __pyx_t_1) < 0) __PYX_ERR(0, 979, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(5, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_getBoundsInter2AngSeg, 979, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(0, 979, __pyx_L1_error)
0980: double DPhi0, double DPhi1):
0981: """ Return Inter=True if an intersection exist (all angles in radians
0982: in [-pi;pi])
0983:
0984: If Inter, return Bounds, a list of tuples indicating the segments defining
0985: the intersection, with
0986: The intervals are ordered from lowest index to highest index (with respect
0987: to [Phi0,Phi1])
0988: """
+0989: if Full:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_Full)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 989, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+0990: Bounds = [[DPhi0,DPhi1]] if DPhi0<=DPhi1 else [[-Cpi,DPhi1],[DPhi0,Cpi]]
if (((__pyx_v_DPhi0 <= __pyx_v_DPhi1) != 0)) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_3);
PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
__pyx_t_3 = 0;
__pyx_t_4 = 0;
__pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_2 = __pyx_t_4;
__pyx_t_4 = 0;
} else {
__pyx_t_4 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
__pyx_t_4 = 0;
__pyx_t_5 = 0;
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
__pyx_t_5 = 0;
__pyx_t_4 = 0;
__pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_3);
PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_6);
PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);
__pyx_t_3 = 0;
__pyx_t_6 = 0;
__pyx_t_2 = __pyx_t_4;
__pyx_t_4 = 0;
}
__pyx_v_Bounds = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+0991: Inter = True
__pyx_v_Inter = 1;
+0992: Faces = [None, None]
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_2, 0, Py_None); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_2, 1, Py_None); __pyx_v_Faces = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
0993:
0994: else:
+0995: Inter, Bounds, Faces = False, None, [False,False]
/*else*/ {
__pyx_t_1 = 0;
__pyx_t_2 = Py_None;
__Pyx_INCREF(__pyx_t_2);
__pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 995, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(Py_False);
__Pyx_GIVEREF(Py_False);
PyList_SET_ITEM(__pyx_t_4, 0, Py_False);
__Pyx_INCREF(Py_False);
__Pyx_GIVEREF(Py_False);
PyList_SET_ITEM(__pyx_t_4, 1, Py_False);
__pyx_v_Inter = __pyx_t_1;
__pyx_v_Bounds = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
__pyx_v_Faces = ((PyObject*)__pyx_t_4);
__pyx_t_4 = 0;
+0996: if Phi0<=Phi1:
__pyx_t_1 = ((__pyx_v_Phi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L4;
}
+0997: if DPhi0<=DPhi1:
__pyx_t_1 = ((__pyx_v_DPhi0 <= __pyx_v_DPhi1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L5;
}
+0998: if DPhi0<=Phi1 and DPhi1>=Phi0:
__pyx_t_7 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 >= __pyx_v_Phi0) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L7_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+0999: Inter = True
__pyx_v_Inter = 1;
+1000: Bounds = [[None,None]]
__pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_4, 0, Py_None); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_4, 1, Py_None); __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0;
+1001: Bounds[0][0] = Phi0 if DPhi0<=Phi0 else DPhi0
if (((__pyx_v_DPhi0 <= __pyx_v_Phi0) != 0)) {
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __pyx_t_4;
__pyx_t_4 = 0;
} else {
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __pyx_t_4;
__pyx_t_4 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1001, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1002: Bounds[0][1] = Phi1 if DPhi1>=Phi1 else DPhi1
if (((__pyx_v_DPhi1 >= __pyx_v_Phi1) != 0)) {
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __pyx_t_4;
__pyx_t_4 = 0;
} else {
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __pyx_t_4;
__pyx_t_4 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 1, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1002, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1003: Faces[0] = DPhi0<=Phi0
__pyx_t_2 = __Pyx_PyBool_FromLong((__pyx_v_DPhi0 <= __pyx_v_Phi0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1003, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1004: Faces[1] = DPhi1>=Phi1
__pyx_t_2 = __Pyx_PyBool_FromLong((__pyx_v_DPhi1 >= __pyx_v_Phi1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 1, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1004, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1005: else:
+1006: if DPhi0<=Phi1 or DPhi1>=Phi0:
/*else*/ {
__pyx_t_7 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 >= __pyx_v_Phi0) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L10_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
}
__pyx_L5:;
+1007: Inter = True
__pyx_v_Inter = 1;
+1008: if DPhi0<=Phi1 and DPhi1>=Phi0:
__pyx_t_7 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 >= __pyx_v_Phi0) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L13_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L12;
}
+1009: Bounds = [[Phi0,DPhi1],[DPhi0,Phi1]]
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_6 = 0; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0;
+1010: Faces = [True,True]
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_2, 0, Py_True); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_2, 1, Py_True); __Pyx_DECREF_SET(__pyx_v_Faces, ((PyObject*)__pyx_t_2)); __pyx_t_2 = 0;
1011: else:
+1012: Bounds = [[None,None]]
/*else*/ {
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_2, 0, Py_None);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_2, 1, Py_None);
__pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1012, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_2);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
__pyx_t_2 = 0;
__Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_3));
__pyx_t_3 = 0;
+1013: if DPhi0<=Phi1:
__pyx_t_1 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+1014: Bounds[0][0] = Phi0 if DPhi0<=Phi0 else DPhi0
if (((__pyx_v_DPhi0 <= __pyx_v_Phi0) != 0)) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1014, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1015: Bounds[0][1] = Phi1
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1015, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1016: Faces[0] = DPhi0<=Phi0
__pyx_t_3 = __Pyx_PyBool_FromLong((__pyx_v_DPhi0 <= __pyx_v_Phi0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1016, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1017: Faces[1] = True
if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 1, Py_True, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1017, __pyx_L1_error)
1018: else:
+1019: Bounds[0][0] = Phi0
/*else*/ {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1019, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 0, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1019, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1020: Bounds[0][1] = Phi1 if DPhi1>=Phi1 else DPhi1
if (((__pyx_v_DPhi1 >= __pyx_v_Phi1) != 0)) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1020, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __pyx_t_2;
__pyx_t_2 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1020, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1021: Faces[0] = True
if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 0, Py_True, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1021, __pyx_L1_error)
+1022: Faces[1] = DPhi1>=Phi1
__pyx_t_3 = __Pyx_PyBool_FromLong((__pyx_v_DPhi1 >= __pyx_v_Phi1)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 1, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1022, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L15:; } __pyx_L12:;
1023: else:
+1024: if DPhi0<=DPhi1:
/*else*/ {
__pyx_t_1 = ((__pyx_v_DPhi0 <= __pyx_v_DPhi1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L16;
}
+1025: if DPhi0<=Phi1 or DPhi1>=Phi0:
__pyx_t_7 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 >= __pyx_v_Phi0) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L18_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+1026: Inter = True
__pyx_v_Inter = 1;
+1027: if DPhi0<=Phi1 and DPhi1>=Phi0:
__pyx_t_7 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L21_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 >= __pyx_v_Phi0) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L21_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L20;
}
+1028: Bounds = [[Phi0,DPhi1],[DPhi0,Phi1]]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_4); __pyx_t_6 = 0; __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+1029: Faces = [True,True]
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_3, 0, Py_True); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_3, 1, Py_True); __Pyx_DECREF_SET(__pyx_v_Faces, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
1030: else:
+1031: Bounds = [[None,None]]
/*else*/ {
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_3, 0, Py_None);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_3, 1, Py_None);
__pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GIVEREF(__pyx_t_3);
PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
__pyx_t_3 = 0;
__Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_4));
__pyx_t_4 = 0;
+1032: if DPhi0<=Phi1:
__pyx_t_1 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L23;
}
+1033: Bounds[0][0] = DPhi0
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1033, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1033, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1034: Bounds[0][1] = Phi1 if DPhi1>=Phi1 else DPhi1
if (((__pyx_v_DPhi1 >= __pyx_v_Phi1) != 0)) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1034, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_t_3;
__pyx_t_3 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 1, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1034, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1035: Faces[1] = DPhi1>=Phi1
__pyx_t_4 = __Pyx_PyBool_FromLong((__pyx_v_DPhi1 >= __pyx_v_Phi1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 1, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1035, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1036: else:
+1037: Bounds[0][0] = Phi0 if DPhi0<=Phi0 else DPhi0
/*else*/ {
if (((__pyx_v_DPhi0 <= __pyx_v_Phi0) != 0)) {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1037, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_t_3;
__pyx_t_3 = 0;
} else {
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1037, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = __pyx_t_3;
__pyx_t_3 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1037, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1038: Bounds[0][1] = DPhi1
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 1, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1038, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1039: Faces[0] = DPhi0<=Phi0
__pyx_t_4 = __Pyx_PyBool_FromLong((__pyx_v_DPhi0 <= __pyx_v_Phi0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1039, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __pyx_L23:; } __pyx_L20:;
1040: else:
+1041: Inter = True
/*else*/ {
__pyx_v_Inter = 1;
+1042: if DPhi0>=Phi0 and DPhi1>=Phi0:
__pyx_t_7 = ((__pyx_v_DPhi0 >= __pyx_v_Phi0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L25_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 >= __pyx_v_Phi0) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L25_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L24;
}
+1043: Bounds = [[Phi0,DPhi1],[DPhi0,Cpi],[-Cpi,Phi1]]
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+1044: Faces = [True,True]
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_3, 0, Py_True); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_3, 1, Py_True); __Pyx_DECREF_SET(__pyx_v_Faces, ((PyObject*)__pyx_t_3)); __pyx_t_3 = 0;
+1045: elif DPhi0<=Phi1 and DPhi1<=Phi1:
__pyx_t_7 = ((__pyx_v_DPhi0 <= __pyx_v_Phi1) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L27_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_DPhi1 <= __pyx_v_Phi1) != 0);
__pyx_t_1 = __pyx_t_7;
__pyx_L27_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L24;
}
+1046: Bounds = [[Phi0,Cpi],[-Cpi,DPhi1],[DPhi0,Phi1]]
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyList_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0;
+1047: Faces = [True,True]
__pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_5, 0, Py_True); __Pyx_INCREF(Py_True); __Pyx_GIVEREF(Py_True); PyList_SET_ITEM(__pyx_t_5, 1, Py_True); __Pyx_DECREF_SET(__pyx_v_Faces, ((PyObject*)__pyx_t_5)); __pyx_t_5 = 0;
1048: else:
+1049: Bounds = [[None,Cpi],[-Cpi,None]]
/*else*/ {
__pyx_t_5 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_4, 0, Py_None);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
__pyx_t_5 = 0;
__pyx_t_5 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
__Pyx_INCREF(Py_None);
__Pyx_GIVEREF(Py_None);
PyList_SET_ITEM(__pyx_t_6, 1, Py_None);
__pyx_t_5 = 0;
__pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1049, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_6);
PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
__pyx_t_4 = 0;
__pyx_t_6 = 0;
__Pyx_DECREF_SET(__pyx_v_Bounds, ((PyObject*)__pyx_t_5));
__pyx_t_5 = 0;
+1050: Bounds[0][0] = Phi0 if DPhi0<=Phi0 else DPhi0
if (((__pyx_v_DPhi0 <= __pyx_v_Phi0) != 0)) {
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_Phi0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __pyx_t_6;
__pyx_t_6 = 0;
} else {
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __pyx_t_6;
__pyx_t_6 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 0), 0, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1050, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1051: Bounds[1][1] = Phi1 if DPhi1>=Phi1 else DPhi1
if (((__pyx_v_DPhi1 >= __pyx_v_Phi1) != 0)) {
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_Phi1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __pyx_t_6;
__pyx_t_6 = 0;
} else {
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = __pyx_t_6;
__pyx_t_6 = 0;
}
if (unlikely(__Pyx_SetItemInt(PyList_GET_ITEM(__pyx_v_Bounds, 1), 1, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1051, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1052: Faces[0] = DPhi0<=Phi0
__pyx_t_5 = __Pyx_PyBool_FromLong((__pyx_v_DPhi0 <= __pyx_v_Phi0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 0, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1052, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1053: Faces[1] = DPhi1>=Phi1
__pyx_t_5 = __Pyx_PyBool_FromLong((__pyx_v_DPhi1 >= __pyx_v_Phi1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_SetItemInt(__pyx_v_Faces, 1, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 1053, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L24:; } __pyx_L16:; } __pyx_L4:; } __pyx_L3:;
+1054: return Inter, Bounds, Faces
__Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_Inter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_INCREF(__pyx_v_Bounds); __Pyx_GIVEREF(__pyx_v_Bounds); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_Bounds); __Pyx_INCREF(__pyx_v_Faces); __Pyx_GIVEREF(__pyx_v_Faces); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_Faces); __pyx_t_5 = 0; __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;
1055:
1056:
1057:
1058:
1059: @cython.cdivision(True)
1060: @cython.wraparound(False)
1061: @cython.boundscheck(False)
+1062: def _Ves_Smesh_Tor_SubFromD_cython(double dL, double dRPhi,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_33_Ves_Smesh_Tor_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_32_Ves_Smesh_Tor_SubFromD_cython[] = " Return the desired surfacic submesh indicated by the limits (DR,DZ,DPhi)\n for the desired resolution (dR,dZ,dRphi)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_33_Ves_Smesh_Tor_SubFromD_cython = {"_Ves_Smesh_Tor_SubFromD_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_33_Ves_Smesh_Tor_SubFromD_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_32_Ves_Smesh_Tor_SubFromD_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_33_Ves_Smesh_Tor_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_dL;
double __pyx_v_dRPhi;
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_DR = 0;
PyObject *__pyx_v_DZ = 0;
PyObject *__pyx_v_DPhi = 0;
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_PhiMinMax = 0;
PyObject *__pyx_v_Out = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Tor_SubFromD_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dL,&__pyx_n_s_dRPhi,&__pyx_n_s_VPoly,&__pyx_n_s_DR,&__pyx_n_s_DZ,&__pyx_n_s_DPhi,&__pyx_n_s_DIn,&__pyx_n_s_VIn,&__pyx_n_s_PhiMinMax,&__pyx_n_s_Out,&__pyx_n_s_margin,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_32_Ves_Smesh_Tor_SubFromD_cython(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_dL, double __pyx_v_dRPhi, __Pyx_memviewslice __pyx_v_VPoly, PyObject *__pyx_v_DR, PyObject *__pyx_v_DZ, PyObject *__pyx_v_DPhi, double __pyx_v_DIn, PyObject *__pyx_v_VIn, PyObject *__pyx_v_PhiMinMax, PyObject *__pyx_v_Out, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_dPhir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_DPhi0;
double __pyx_v_DPhi1;
CYTHON_UNUSED double __pyx_v_DDPhi;
double __pyx_v_DPhiMinMax;
double __pyx_v_abs0;
double __pyx_v_abs1;
double __pyx_v_phi;
double __pyx_v_indiijj;
__Pyx_memviewslice __pyx_v_Phin = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_Indin = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_NR0;
int __pyx_v_nRPhi0;
int __pyx_v_indR0ii;
int __pyx_v_ii;
int __pyx_v_jj0;
int __pyx_v_jj;
int __pyx_v_nPhi0;
int __pyx_v_nPhi1;
int __pyx_v_NP;
CYTHON_UNUSED int __pyx_v_NRPhi_int;
int __pyx_v_Rratio;
int __pyx_v_Ln;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_indI = 0;
PyArrayObject *__pyx_v_PtsCross = 0;
PyArrayObject *__pyx_v_VPbis = 0;
PyArrayObject *__pyx_v_R0 = 0;
PyArrayObject *__pyx_v_dS = 0;
PyArrayObject *__pyx_v_ind = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_dRPhir = 0;
PyArrayObject *__pyx_v_iii = 0;
PyArrayObject *__pyx_v_indL = 0;
PyArrayObject *__pyx_v_NL = 0;
PyArrayObject *__pyx_v_indok = 0;
int __pyx_v_Full;
PyObject *__pyx_v_Inter = NULL;
PyObject *__pyx_v_Bounds = NULL;
CYTHON_UNUSED PyObject *__pyx_v_Faces = NULL;
PyObject *__pyx_v_BC = NULL;
Py_ssize_t __pyx_v_nBounds;
PyObject *__pyx_v_indin = NULL;
CYTHON_UNUSED long __pyx_v_NPhimax;
PyObject *__pyx_v_indBounds = NULL;
Py_ssize_t __pyx_v_kk;
PyObject *__pyx_v_kkb = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_NL;
__Pyx_Buffer __pyx_pybuffer_NL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsCross;
__Pyx_Buffer __pyx_pybuffer_PtsCross;
__Pyx_LocalBuf_ND __pyx_pybuffernd_R0;
__Pyx_Buffer __pyx_pybuffer_R0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPbis;
__Pyx_Buffer __pyx_pybuffer_VPbis;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dRPhir;
__Pyx_Buffer __pyx_pybuffer_dRPhir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
__Pyx_LocalBuf_ND __pyx_pybuffernd_iii;
__Pyx_Buffer __pyx_pybuffer_iii;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indI;
__Pyx_Buffer __pyx_pybuffer_indI;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indL;
__Pyx_Buffer __pyx_pybuffer_indL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indok;
__Pyx_Buffer __pyx_pybuffer_indok;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Tor_SubFromD_cython", 0);
__Pyx_INCREF(__pyx_v_PhiMinMax);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_indI.pybuffer.buf = NULL;
__pyx_pybuffer_indI.refcount = 0;
__pyx_pybuffernd_indI.data = NULL;
__pyx_pybuffernd_indI.rcbuffer = &__pyx_pybuffer_indI;
__pyx_pybuffer_PtsCross.pybuffer.buf = NULL;
__pyx_pybuffer_PtsCross.refcount = 0;
__pyx_pybuffernd_PtsCross.data = NULL;
__pyx_pybuffernd_PtsCross.rcbuffer = &__pyx_pybuffer_PtsCross;
__pyx_pybuffer_VPbis.pybuffer.buf = NULL;
__pyx_pybuffer_VPbis.refcount = 0;
__pyx_pybuffernd_VPbis.data = NULL;
__pyx_pybuffernd_VPbis.rcbuffer = &__pyx_pybuffer_VPbis;
__pyx_pybuffer_R0.pybuffer.buf = NULL;
__pyx_pybuffer_R0.refcount = 0;
__pyx_pybuffernd_R0.data = NULL;
__pyx_pybuffernd_R0.rcbuffer = &__pyx_pybuffer_R0;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_dRPhir.pybuffer.buf = NULL;
__pyx_pybuffer_dRPhir.refcount = 0;
__pyx_pybuffernd_dRPhir.data = NULL;
__pyx_pybuffernd_dRPhir.rcbuffer = &__pyx_pybuffer_dRPhir;
__pyx_pybuffer_iii.pybuffer.buf = NULL;
__pyx_pybuffer_iii.refcount = 0;
__pyx_pybuffernd_iii.data = NULL;
__pyx_pybuffernd_iii.rcbuffer = &__pyx_pybuffer_iii;
__pyx_pybuffer_indL.pybuffer.buf = NULL;
__pyx_pybuffer_indL.refcount = 0;
__pyx_pybuffernd_indL.data = NULL;
__pyx_pybuffernd_indL.rcbuffer = &__pyx_pybuffer_indL;
__pyx_pybuffer_NL.pybuffer.buf = NULL;
__pyx_pybuffer_NL.refcount = 0;
__pyx_pybuffernd_NL.data = NULL;
__pyx_pybuffernd_NL.rcbuffer = &__pyx_pybuffer_NL;
__pyx_pybuffer_indok.pybuffer.buf = NULL;
__pyx_pybuffer_indok.refcount = 0;
__pyx_pybuffernd_indok.data = NULL;
__pyx_pybuffernd_indok.rcbuffer = &__pyx_pybuffer_indok;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_15);
__PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_27, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indok.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Tor_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indok.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_dPhir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Phin, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Indin, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_indI);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsCross);
__Pyx_XDECREF((PyObject *)__pyx_v_VPbis);
__Pyx_XDECREF((PyObject *)__pyx_v_R0);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_dRPhir);
__Pyx_XDECREF((PyObject *)__pyx_v_iii);
__Pyx_XDECREF((PyObject *)__pyx_v_indL);
__Pyx_XDECREF((PyObject *)__pyx_v_NL);
__Pyx_XDECREF((PyObject *)__pyx_v_indok);
__Pyx_XDECREF(__pyx_v_Inter);
__Pyx_XDECREF(__pyx_v_Bounds);
__Pyx_XDECREF(__pyx_v_Faces);
__Pyx_XDECREF(__pyx_v_BC);
__Pyx_XDECREF(__pyx_v_indin);
__Pyx_XDECREF(__pyx_v_indBounds);
__Pyx_XDECREF(__pyx_v_kkb);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__Pyx_XDECREF(__pyx_v_PhiMinMax);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__190 = PyTuple_Pack(74, __pyx_n_s_dL, __pyx_n_s_dRPhi, __pyx_n_s_VPoly, __pyx_n_s_DR, __pyx_n_s_DZ, __pyx_n_s_DPhi, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_PhiMinMax, __pyx_n_s_Out, __pyx_n_s_margin, __pyx_n_s_R, __pyx_n_s_Z, __pyx_n_s_dPhir, __pyx_n_s_NRPhi, __pyx_n_s_dRr0, __pyx_n_s_dRr, __pyx_n_s_dZr, __pyx_n_s_DPhi0, __pyx_n_s_DPhi1, __pyx_n_s_DDPhi, __pyx_n_s_DPhiMinMax, __pyx_n_s_abs0, __pyx_n_s_abs1, __pyx_n_s_phi, __pyx_n_s_indiijj, __pyx_n_s_indR0, __pyx_n_s_indR, __pyx_n_s_indZ, __pyx_n_s_Phin, __pyx_n_s_NRPhi0, __pyx_n_s_Indin, __pyx_n_s_NR0, __pyx_n_s_NR, __pyx_n_s_NZ, __pyx_n_s_Rn, __pyx_n_s_Zn, __pyx_n_s_nRPhi0, __pyx_n_s_indR0ii, __pyx_n_s_ii, __pyx_n_s_jj0, __pyx_n_s_jj, __pyx_n_s_nPhi0, __pyx_n_s_nPhi1, __pyx_n_s_zz, __pyx_n_s_NP, __pyx_n_s_NRPhi_int, __pyx_n_s_Rratio, __pyx_n_s_Ln, __pyx_n_s_Pts, __pyx_n_s_indI, __pyx_n_s_PtsCross, __pyx_n_s_VPbis, __pyx_n_s_R0, __pyx_n_s_dS, __pyx_n_s_ind, __pyx_n_s_dLr, __pyx_n_s_Rref, __pyx_n_s_dRPhir, __pyx_n_s_iii, __pyx_n_s_indL, __pyx_n_s_NL, __pyx_n_s_indok, __pyx_n_s_Full, __pyx_n_s_Inter, __pyx_n_s_Bounds, __pyx_n_s_Faces, __pyx_n_s_BC, __pyx_n_s_nBounds, __pyx_n_s_indin, __pyx_n_s_NPhimax, __pyx_n_s_indBounds, __pyx_n_s_kk, __pyx_n_s_kkb); if (unlikely(!__pyx_tuple__190)) __PYX_ERR(0, 1062, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__190);
__Pyx_GIVEREF(__pyx_tuple__190);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_33_Ves_Smesh_Tor_SubFromD_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1062, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_Tor_SubFromD_cython, __pyx_t_1) < 0) __PYX_ERR(0, 1062, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(11, 0, 74, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__190, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_Tor_SubFromD_cython, 1062, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(0, 1062, __pyx_L1_error)
1063: double[:,::1] VPoly,
+1064: DR=None, DZ=None, DPhi=None,
values[3] = ((PyObject *)Py_None);
values[4] = ((PyObject *)Py_None);
values[5] = ((PyObject *)Py_None);
+1065: double DIn=0., VIn=None, PhiMinMax=None,
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)Py_None);
values[9] = ((PyObject*)__pyx_kp_s_X_Y_Z);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dRPhi)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromD_cython", 0, 3, 11, 1); __PYX_ERR(0, 1062, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromD_cython", 0, 3, 11, 2); __PYX_ERR(0, 1062, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DR);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DZ);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DPhi);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_PhiMinMax);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_Tor_SubFromD_cython") < 0)) __PYX_ERR(0, 1062, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1062, __pyx_L3_error)
__pyx_v_dRPhi = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dRPhi == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1062, __pyx_L3_error)
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 1063, __pyx_L3_error)
__pyx_v_DR = values[3];
__pyx_v_DZ = values[4];
__pyx_v_DPhi = values[5];
if (values[6]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1065, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[7];
__pyx_v_PhiMinMax = values[8];
__pyx_v_Out = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1066, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__48;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromD_cython", 0, 3, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1062, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Tor_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Out), (&PyString_Type), 1, "Out", 1))) __PYX_ERR(0, 1066, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_32_Ves_Smesh_Tor_SubFromD_cython(__pyx_self, __pyx_v_dL, __pyx_v_dRPhi, __pyx_v_VPoly, __pyx_v_DR, __pyx_v_DZ, __pyx_v_DPhi, __pyx_v_DIn, __pyx_v_VIn, __pyx_v_PhiMinMax, __pyx_v_Out, __pyx_v_margin);
+1066: str Out='(X,Y,Z)', double margin=_VSMALL):
__pyx_k__48 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1067: """ Return the desired surfacic submesh indicated by the limits (DR,DZ,DPhi)
1068: for the desired resolution (dR,dZ,dRphi)
1069: """
1070: cdef double[::1] R, Z, dPhir, NRPhi#, dPhi, NRZPhi_cum0, indPhi, phi
1071: cdef double dRr0, dRr, dZr, DPhi0, DPhi1, DDPhi, DPhiMinMax
1072: cdef double abs0, abs1, phi, indiijj
1073: cdef long[::1] indR0, indR, indZ, Phin, NRPhi0, Indin
+1074: cdef int NR0, NR, NZ, Rn, Zn, nRPhi0, indR0ii, ii, jj0=0, jj, nPhi0, nPhi1
__pyx_v_jj0 = 0;
1075: cdef int zz, NP, NRPhi_int, Rratio, Ln
1076: cdef np.ndarray[double,ndim=2] Pts, indI, PtsCross, VPbis
1077: cdef np.ndarray[double,ndim=1] R0, dS, ind, dLr, Rref, dRPhir, iii
1078: cdef np.ndarray[long,ndim=1] indL, NL, indok
1079:
1080: # Pre-format input
+1081: if PhiMinMax is None:
__pyx_t_1 = (__pyx_v_PhiMinMax == Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L3;
}
+1082: PhiMinMax = [-Cpi,Cpi]
__pyx_t_3 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_3 = 0; __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_PhiMinMax, __pyx_t_5); __pyx_t_5 = 0;
+1083: DPhiMinMax = 2.*Cpi
__pyx_v_DPhiMinMax = (2. * M_PI);
+1084: Full = True
__pyx_v_Full = 1;
1085: else:
+1086: PhiMinMax = [Catan2(Csin(PhiMinMax[0]),Ccos(PhiMinMax[0])),
/*else*/ {
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1086, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1086, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyFloat_FromDouble(atan2(sin(__pyx_t_6), cos(__pyx_t_7))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
/* … */
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1086, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
__pyx_t_5 = 0;
__pyx_t_4 = 0;
__Pyx_DECREF_SET(__pyx_v_PhiMinMax, __pyx_t_3);
__pyx_t_3 = 0;
+1087: Catan2(Csin(PhiMinMax[1]),Ccos(PhiMinMax[1]))]
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(atan2(sin(__pyx_t_7), cos(__pyx_t_6))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1087, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4);
+1088: DPhiMinMax = PhiMinMax[1]-PhiMinMax[0] if PhiMinMax[1]>=PhiMinMax[0] \
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyObject_RichCompare(__pyx_t_3, __pyx_t_4, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_2) { __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1088, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __pyx_t_7; } else {
+1089: else 2.*Cpi + PhiMinMax[1] - PhiMinMax[0]
__pyx_t_3 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1089, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = __pyx_t_7; } __pyx_v_DPhiMinMax = __pyx_t_6;
+1090: Full = False
__pyx_v_Full = 0; } __pyx_L3:;
1091:
1092: # Get the limits if any (and make sure to replace them in the proper
1093: # quadrants)
+1094: if DPhi is None:
__pyx_t_2 = (__pyx_v_DPhi == Py_None);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L4;
}
+1095: DPhi0, DPhi1 = PhiMinMax[0], PhiMinMax[1]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_DPhi0 = __pyx_t_6; __pyx_v_DPhi1 = __pyx_t_7;
1096: else:
+1097: DPhi0 = PhiMinMax[0] if DPhi[0] is None else Catan2(Csin(DPhi[0]),
/*else*/ {
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = (__pyx_t_3 == Py_None);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if ((__pyx_t_1 != 0)) {
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = __pyx_t_6;
} else {
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1097, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_t_7 = atan2(sin(__pyx_t_6), cos(__pyx_t_8));
}
__pyx_v_DPhi0 = __pyx_t_7;
+1098: Ccos(DPhi[0]))
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1098, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1099: DPhi1 = PhiMinMax[1] if DPhi[1] is None else Catan2(Csin(DPhi[1]),
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = (__pyx_t_3 == Py_None); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((__pyx_t_1 != 0)) { __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_t_8; } else { __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1099, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_7 = atan2(sin(__pyx_t_8), cos(__pyx_t_6)); } __pyx_v_DPhi1 = __pyx_t_7; } __pyx_L4:;
+1100: Ccos(DPhi[1]))
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1101: DDPhi = DPhi1-DPhi0 if DPhi1>DPhi0 else 2.*Cpi+DPhi1-DPhi0
if (((__pyx_v_DPhi1 > __pyx_v_DPhi0) != 0)) {
__pyx_t_7 = (__pyx_v_DPhi1 - __pyx_v_DPhi0);
} else {
__pyx_t_7 = (((2. * M_PI) + __pyx_v_DPhi1) - __pyx_v_DPhi0);
}
__pyx_v_DDPhi = __pyx_t_7;
1102:
+1103: Inter, Bounds, Faces = _getBoundsInter2AngSeg(Full, PhiMinMax[0],
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_getBoundsInter2AngSeg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_Full); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); /* … */ __pyx_v_Inter = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_Bounds = __pyx_t_15; __pyx_t_15 = 0; __pyx_v_Faces = __pyx_t_12; __pyx_t_12 = 0;
+1104: PhiMinMax[1], DPhi0, DPhi1)
__pyx_t_10 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyFloat_FromDouble(__pyx_v_DPhi0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_DPhi1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1104, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = NULL; __pyx_t_14 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_14 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[6] = {__pyx_t_13, __pyx_t_5, __pyx_t_9, __pyx_t_10, __pyx_t_11, __pyx_t_12}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 5+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[6] = {__pyx_t_13, __pyx_t_5, __pyx_t_9, __pyx_t_10, __pyx_t_11, __pyx_t_12}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 5+__pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_15 = PyTuple_New(5+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_14, __pyx_t_12); __pyx_t_5 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1103, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_15 = PyList_GET_ITEM(sequence, 1); __pyx_t_12 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_12); #else __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_11)->tp_iternext; index = 0; __pyx_t_4 = __pyx_t_16(__pyx_t_11); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_11); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_15); index = 2; __pyx_t_12 = __pyx_t_16(__pyx_t_11); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_12); if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_11), 3) < 0) __PYX_ERR(0, 1103, __pyx_L1_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1103, __pyx_L1_error) __pyx_L6_unpacking_done:; }
1105:
+1106: if Inter:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Inter); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1106, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L7; }
1107:
+1108: BC = list(Bounds)
__pyx_t_3 = PySequence_List(__pyx_v_Bounds); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_BC = ((PyObject*)__pyx_t_3); __pyx_t_3 = 0;
+1109: nBounds = len(Bounds)
__pyx_t_17 = PyObject_Length(__pyx_v_Bounds); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1109, __pyx_L1_error) __pyx_v_nBounds = __pyx_t_17;
+1110: for ii in range(0,nBounds):
__pyx_t_17 = __pyx_v_nBounds;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_18; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+1111: if BC[ii][0]<PhiMinMax[0]:
__pyx_t_3 = __Pyx_GetItemInt(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = PyObject_RichCompare(__pyx_t_3, __pyx_t_12, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1111, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (__pyx_t_1) { /* … */ }
+1112: BC[ii][0] += 2.*Cpi
__Pyx_INCREF(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii)); __pyx_t_15 = PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii); __pyx_t_19 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_15, __pyx_t_19, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_15, __pyx_t_19, __pyx_t_4, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0) < 0)) __PYX_ERR(0, 1112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+1113: if BC[ii][1]<=PhiMinMax[0]:
__pyx_t_15 = __Pyx_GetItemInt(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyObject_RichCompare(__pyx_t_15, __pyx_t_4, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1113, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { /* … */ } }
+1114: BC[ii][1] += 2.*Cpi
__Pyx_INCREF(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii)); __pyx_t_3 = PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii); __pyx_t_19 = 1; __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_19, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_t_19, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0) < 0)) __PYX_ERR(0, 1114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1115:
1116: # Get the actual R and Z resolutions and mesh elements
+1117: PtsCross, dLr, indL, \
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1117, __pyx_L1_error) __pyx_t_20 = ((PyArrayObject *)__pyx_t_15); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1117, __pyx_L1_error) } __pyx_t_20 = 0; __pyx_v_PtsCross = ((PyArrayObject *)__pyx_t_15); __pyx_t_15 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1117, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_v_indL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_indL.diminfo[0].strides = __pyx_pybuffernd_indL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indL.diminfo[0].shape = __pyx_pybuffernd_indL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1117, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_indL = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_11); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1118, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_11); __pyx_t_11 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1118, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0; __pyx_t_20 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1118, __pyx_L1_error) } __pyx_t_20 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
+1118: NL, Rref, VPbis = _Ves_Smesh_Cross(VPoly, dL, D1=None, D2=None,
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ves_Smesh_Cross); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_15); __pyx_t_12 = 0; __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_D1, Py_None) < 0) __PYX_ERR(0, 1118, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_D2, Py_None) < 0) __PYX_ERR(0, 1118, __pyx_L1_error) /* … */ __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) { PyObject* sequence = __pyx_t_12; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1117, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_15 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); __pyx_t_11 = PyList_GET_ITEM(sequence, 3); __pyx_t_10 = PyList_GET_ITEM(sequence, 4); __pyx_t_9 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_9); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_15,&__pyx_t_4,&__pyx_t_3,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_15,&__pyx_t_4,&__pyx_t_3,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9}; __pyx_t_5 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_5)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_16(__pyx_t_5); if (unlikely(!item)) goto __pyx_L12_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_5), 6) < 0) __PYX_ERR(0, 1117, __pyx_L1_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L13_unpacking_done; __pyx_L12_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1117, __pyx_L1_error) __pyx_L13_unpacking_done:; }
+1119: margin=margin, DIn=DIn, VIn=VIn)
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_margin, __pyx_t_12) < 0) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_DIn, __pyx_t_12) < 0) __PYX_ERR(0, 1118, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_VIn, __pyx_v_VIn) < 0) __PYX_ERR(0, 1118, __pyx_L1_error)
+1120: R0 = np.copy(Rref)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_copy); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_12 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_9, ((PyObject *)__pyx_v_Rref)) : __Pyx_PyObject_CallOneArg(__pyx_t_10, ((PyObject *)__pyx_v_Rref)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1120, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_12); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_R0.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_R0.rcbuffer->pybuffer, (PyObject*)__pyx_v_R0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_R0.diminfo[0].strides = __pyx_pybuffernd_R0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_R0.diminfo[0].shape = __pyx_pybuffernd_R0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1120, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_R0 = ((PyArrayObject *)__pyx_t_12); __pyx_t_12 = 0;
+1121: NR0 = R0.size
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_R0), __pyx_n_s_size); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_NR0 = __pyx_t_14;
+1122: indin = np.ones((PtsCross.shape[1],),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_ones); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_Py_intptr_t((__pyx_v_PtsCross->dimensions[1])); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 1122, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_indin = __pyx_t_11; __pyx_t_11 = 0;
+1123: if DR is not None:
__pyx_t_1 = (__pyx_v_DR != Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+1124: indin = indin & (R0>=DR[0]) & (R0<=DR[1])
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_DR, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = PyObject_RichCompare(((PyObject *)__pyx_v_R0), __pyx_t_11, Py_GE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_And(__pyx_v_indin, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_DR, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyObject_RichCompare(((PyObject *)__pyx_v_R0), __pyx_t_9, Py_LE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_And(__pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_9); __pyx_t_9 = 0;
+1125: if DZ is not None:
__pyx_t_2 = (__pyx_v_DZ != Py_None);
__pyx_t_1 = (__pyx_t_2 != 0);
if (__pyx_t_1) {
/* … */
}
+1126: indin = indin & (PtsCross[1,:]>=DZ[0]) & (PtsCross[1,:]<=DZ[1])
__pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_DZ, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyObject_RichCompare(__pyx_t_9, __pyx_t_12, Py_GE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_And(__pyx_v_indin, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_DZ, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyObject_RichCompare(__pyx_t_11, __pyx_t_9, Py_LE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_And(__pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_9); __pyx_t_9 = 0;
+1127: PtsCross, dLr, indL, Rref = PtsCross[:,indin], dLr[indin], \
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_indin); __pyx_t_10 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1127, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), __pyx_v_indin); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1127, __pyx_L1_error)
+1128: indL[indin], Rref[indin]
__pyx_t_12 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indL), __pyx_v_indin); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1128, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Rref), __pyx_v_indin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1128, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1128, __pyx_L1_error) __pyx_t_20 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1127, __pyx_L1_error) } __pyx_t_20 = 0; __Pyx_DECREF_SET(__pyx_v_PtsCross, ((PyArrayObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1127, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_dLr, ((PyArrayObject *)__pyx_t_9)); __pyx_t_9 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_12); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_v_indL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_indL.diminfo[0].strides = __pyx_pybuffernd_indL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indL.diminfo[0].shape = __pyx_pybuffernd_indL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1127, __pyx_L1_error) } __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_indL, ((PyArrayObject *)__pyx_t_12)); __pyx_t_12 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_11); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1127, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_Rref, ((PyArrayObject *)__pyx_t_11)); __pyx_t_11 = 0;
+1129: Ln = indin.sum()
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_11 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_12); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_Ln = __pyx_t_14;
+1130: Indin = indin.nonzero()[0]
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_11 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_12); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_12, PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 1130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_Indin = __pyx_t_26; __pyx_t_26.memview = NULL; __pyx_t_26.data = NULL;
1131:
+1132: dRPhir, dPhir = np.empty((Ln,)), np.empty((Ln,))
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_12 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_empty); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_9 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_3); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_27 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_9, PyBUF_WRITABLE); if (unlikely(!__pyx_t_27.memview)) __PYX_ERR(0, 1132, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_12); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_v_dRPhir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_dRPhir.diminfo[0].strides = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dRPhir.diminfo[0].shape = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1132, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_dRPhir = ((PyArrayObject *)__pyx_t_12); __pyx_t_12 = 0; __pyx_v_dPhir = __pyx_t_27; __pyx_t_27.memview = NULL; __pyx_t_27.data = NULL;
+1133: Phin = np.zeros((Ln,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1133, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 1133, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_Phin = __pyx_t_26; __pyx_t_26.memview = NULL; __pyx_t_26.data = NULL;
+1134: NRPhi = np.empty((Ln,))
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_empty); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_3 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_11, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_27 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_3, PyBUF_WRITABLE); if (unlikely(!__pyx_t_27.memview)) __PYX_ERR(0, 1134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_NRPhi = __pyx_t_27; __pyx_t_27.memview = NULL; __pyx_t_27.data = NULL;
+1135: NRPhi0 = np.zeros((Ln,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1135, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 1135, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_NRPhi0 = __pyx_t_26; __pyx_t_26.memview = NULL; __pyx_t_26.data = NULL;
+1136: nRPhi0, indR0ii = 0, 0
__pyx_t_14 = 0;
__pyx_t_28 = 0;
__pyx_v_nRPhi0 = __pyx_t_14;
__pyx_v_indR0ii = __pyx_t_28;
+1137: NP, NPhimax = 0, 0
__pyx_t_28 = 0;
__pyx_t_29 = 0;
__pyx_v_NP = __pyx_t_28;
__pyx_v_NPhimax = __pyx_t_29;
+1138: Rratio = int(Cceil(np.max(Rref)/np.min(Rref)))
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_11 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, ((PyObject *)__pyx_v_Rref)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_Rref)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_min); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_9, ((PyObject *)__pyx_v_Rref)) : __Pyx_PyObject_CallOneArg(__pyx_t_12, ((PyObject *)__pyx_v_Rref)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyNumber_Divide(__pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_Rratio = ((int)ceil(__pyx_t_7));
+1139: indBounds = np.empty((2,nBounds),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_nBounds); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1139, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_indBounds = __pyx_t_9; __pyx_t_9 = 0;
+1140: for ii in range(0,Ln):
__pyx_t_28 = __pyx_v_Ln;
__pyx_t_14 = __pyx_t_28;
for (__pyx_t_30 = 0; __pyx_t_30 < __pyx_t_14; __pyx_t_30+=1) {
__pyx_v_ii = __pyx_t_30;
1141: # Get the actual RPhi resolution and Phi mesh elements
1142: # (! depends on R!)
+1143: NRPhi[ii] = Cceil(DPhiMinMax*Rref[ii]/dRPhi)
__pyx_t_31 = __pyx_v_ii;
__pyx_t_32 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_32)) )) = ceil(((__pyx_v_DPhiMinMax * (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_Rref.rcbuffer->pybuffer.buf, __pyx_t_31, __pyx_pybuffernd_Rref.diminfo[0].strides))) / __pyx_v_dRPhi));
+1144: NRPhi_int = int(NRPhi[ii])
__pyx_t_33 = __pyx_v_ii;
__pyx_v_NRPhi_int = ((int)(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_33)) ))));
+1145: dPhir[ii] = DPhiMinMax/NRPhi[ii]
__pyx_t_34 = __pyx_v_ii;
__pyx_t_35 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_35)) )) = (__pyx_v_DPhiMinMax / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_NRPhi.data) + __pyx_t_34)) ))));
+1146: dRPhir[ii] = dPhir[ii]*Rref[ii]
__pyx_t_36 = __pyx_v_ii;
__pyx_t_37 = __pyx_v_ii;
__pyx_t_38 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_38, __pyx_pybuffernd_dRPhir.diminfo[0].strides) = ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_36)) ))) * (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_Rref.rcbuffer->pybuffer.buf, __pyx_t_37, __pyx_pybuffernd_Rref.diminfo[0].strides)));
1147: # Get index and cumulated indices from background
+1148: for jj0 in range(indR0ii,NR0):
__pyx_t_39 = __pyx_v_NR0;
__pyx_t_40 = __pyx_t_39;
for (__pyx_t_41 = __pyx_v_indR0ii; __pyx_t_41 < __pyx_t_40; __pyx_t_41+=1) {
__pyx_v_jj0 = __pyx_t_41;
+1149: if jj0==Indin[ii]:
__pyx_t_42 = __pyx_v_ii;
__pyx_t_1 = ((__pyx_v_jj0 == (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Indin.data) + __pyx_t_42)) )))) != 0);
if (__pyx_t_1) {
/* … */
}
+1150: indR0ii = jj0
__pyx_v_indR0ii = __pyx_v_jj0;
+1151: break
goto __pyx_L19_break;
1152: else:
+1153: nRPhi0 += <long>Cceil(DPhiMinMax*R0[jj0]/dRPhi)
/*else*/ {
__pyx_t_43 = __pyx_v_jj0;
__pyx_v_nRPhi0 = (__pyx_v_nRPhi0 + ((long)ceil(((__pyx_v_DPhiMinMax * (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_R0.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_R0.diminfo[0].strides))) / __pyx_v_dRPhi))));
+1154: NRPhi0[ii] = nRPhi0
__pyx_t_44 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_44)) )) = __pyx_v_nRPhi0;
}
}
__pyx_L19_break:;
1155: # Get indices of phi
1156: # Get the extreme indices of the mesh elements that really need to
1157: # be created within those limits
+1158: for kk in range(0,nBounds):
__pyx_t_17 = __pyx_v_nBounds;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_kk = __pyx_t_19;
+1159: abs0 = BC[kk][0]-PhiMinMax[0]
__pyx_t_9 = __Pyx_GetItemInt(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_kk), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyNumber_Subtract(__pyx_t_9, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_abs0 = __pyx_t_7;
+1160: if abs0-dPhir[ii]*Cfloor(abs0/dPhir[ii])<margin*dPhir[ii]:
__pyx_t_45 = __pyx_v_ii;
__pyx_t_46 = __pyx_v_ii;
__pyx_t_47 = __pyx_v_ii;
__pyx_t_1 = (((__pyx_v_abs0 - ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_45)) ))) * floor((__pyx_v_abs0 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_46)) ))))))) < (__pyx_v_margin * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_47)) ))))) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L23;
}
+1161: nPhi0 = int(Cround(abs0/dPhir[ii]))
__pyx_t_48 = __pyx_v_ii;
__pyx_v_nPhi0 = ((int)round((__pyx_v_abs0 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_48)) ))))));
1162: else:
+1163: nPhi0 = int(Cfloor(abs0/dPhir[ii]))
/*else*/ {
__pyx_t_49 = __pyx_v_ii;
__pyx_v_nPhi0 = ((int)floor((__pyx_v_abs0 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_49)) ))))));
}
__pyx_L23:;
+1164: abs1 = BC[kk][1]-PhiMinMax[0]
__pyx_t_12 = __Pyx_GetItemInt(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_kk), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = PyNumber_Subtract(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1164, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_abs1 = __pyx_t_7;
+1165: if abs1-dPhir[ii]*Cfloor(abs1/dPhir[ii])<margin*dPhir[ii]:
__pyx_t_50 = __pyx_v_ii;
__pyx_t_51 = __pyx_v_ii;
__pyx_t_52 = __pyx_v_ii;
__pyx_t_1 = (((__pyx_v_abs1 - ((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_50)) ))) * floor((__pyx_v_abs1 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_51)) ))))))) < (__pyx_v_margin * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_52)) ))))) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L24;
}
+1166: nPhi1 = int(Cround(abs1/dPhir[ii])-1)
__pyx_t_53 = __pyx_v_ii;
__pyx_v_nPhi1 = ((int)(round((__pyx_v_abs1 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_53)) ))))) - 1.0));
1167: else:
+1168: nPhi1 = int(Cfloor(abs1/dPhir[ii]))
/*else*/ {
__pyx_t_54 = __pyx_v_ii;
__pyx_v_nPhi1 = ((int)floor((__pyx_v_abs1 / (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_54)) ))))));
}
__pyx_L24:;
+1169: indBounds[0,kk] = nPhi0
__pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nPhi0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PyInt_FromSsize_t(__pyx_v_kk); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_11); __pyx_t_11 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indBounds, __pyx_t_12, __pyx_t_9) < 0)) __PYX_ERR(0, 1169, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1170: indBounds[1,kk] = nPhi1
__pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nPhi1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = PyInt_FromSsize_t(__pyx_v_kk); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_12); __pyx_t_12 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indBounds, __pyx_t_11, __pyx_t_9) < 0)) __PYX_ERR(0, 1170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1171: Phin[ii] += nPhi1+1-nPhi0
__pyx_t_55 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_55)) )) += ((__pyx_v_nPhi1 + 1) - __pyx_v_nPhi0);
}
1172:
+1173: if ii==0:
__pyx_t_1 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_1) {
/* … */
}
+1174: indI = np.nan*np.ones((Ln,Phin[ii]*Rratio+1))
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_nan); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_56 = __pyx_v_ii; __pyx_t_10 = __Pyx_PyInt_From_long((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_56)) ))) * __pyx_v_Rratio) + 1)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10); __pyx_t_12 = 0; __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_9 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1174, __pyx_L1_error) __pyx_t_20 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indI.rcbuffer->pybuffer); __pyx_t_39 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indI.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_39 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indI.rcbuffer->pybuffer, (PyObject*)__pyx_v_indI, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_indI.diminfo[0].strides = __pyx_pybuffernd_indI.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indI.diminfo[0].shape = __pyx_pybuffernd_indI.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_indI.diminfo[1].strides = __pyx_pybuffernd_indI.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_indI.diminfo[1].shape = __pyx_pybuffernd_indI.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_39 < 0)) __PYX_ERR(0, 1174, __pyx_L1_error) } __pyx_t_20 = 0; __Pyx_XDECREF_SET(__pyx_v_indI, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
+1175: jj = 0
__pyx_v_jj = 0;
+1176: for kk in range(0,nBounds):
__pyx_t_17 = __pyx_v_nBounds;
__pyx_t_18 = __pyx_t_17;
for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
__pyx_v_kk = __pyx_t_19;
+1177: for kkb in range(indBounds[0,kk],indBounds[1,kk]+1):
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_kk); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_indBounds, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_kk); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_indBounds, __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_AddObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_11); __pyx_t_3 = 0; __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_9, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_9 = __pyx_t_11; __Pyx_INCREF(__pyx_t_9); __pyx_t_57 = 0; __pyx_t_58 = NULL; } else { __pyx_t_57 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_58 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 1177, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (likely(!__pyx_t_58)) { if (likely(PyList_CheckExact(__pyx_t_9))) { if (__pyx_t_57 >= PyList_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_57); __Pyx_INCREF(__pyx_t_11); __pyx_t_57++; if (unlikely(0 < 0)) __PYX_ERR(0, 1177, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_57); __pyx_t_57++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } else { if (__pyx_t_57 >= PyTuple_GET_SIZE(__pyx_t_9)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_57); __Pyx_INCREF(__pyx_t_11); __pyx_t_57++; if (unlikely(0 < 0)) __PYX_ERR(0, 1177, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_57); __pyx_t_57++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } } else { __pyx_t_11 = __pyx_t_58(__pyx_t_9); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 1177, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_11); } __Pyx_XDECREF_SET(__pyx_v_kkb, __pyx_t_11); __pyx_t_11 = 0; /* … */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; }
+1178: indI[ii,jj] = <double>( kkb )
__pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_v_kkb); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1178, __pyx_L1_error) __pyx_t_59 = __pyx_v_ii; __pyx_t_60 = __pyx_v_jj; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_indI.rcbuffer->pybuffer.buf, __pyx_t_59, __pyx_pybuffernd_indI.diminfo[0].strides, __pyx_t_60, __pyx_pybuffernd_indI.diminfo[1].strides) = ((double)__pyx_t_7);
+1179: jj += 1
__pyx_v_jj = (__pyx_v_jj + 1);
+1180: NP += Phin[ii]
__pyx_t_61 = __pyx_v_ii;
__pyx_v_NP = (__pyx_v_NP + (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_Phin.data) + __pyx_t_61)) ))));
}
1181:
1182: # Finish counting to get total number of points
+1183: if jj0<=NR0-1:
__pyx_t_1 = ((__pyx_v_jj0 <= (__pyx_v_NR0 - 1)) != 0);
if (__pyx_t_1) {
/* … */
}
+1184: for jj0 in range(indR0ii,NR0):
__pyx_t_28 = __pyx_v_NR0;
__pyx_t_14 = __pyx_t_28;
for (__pyx_t_30 = __pyx_v_indR0ii; __pyx_t_30 < __pyx_t_14; __pyx_t_30+=1) {
__pyx_v_jj0 = __pyx_t_30;
+1185: nRPhi0 += <long>Cceil(DPhiMinMax*R0[jj0]/dRPhi)
__pyx_t_62 = __pyx_v_jj0;
__pyx_v_nRPhi0 = (__pyx_v_nRPhi0 + ((long)ceil(((__pyx_v_DPhiMinMax * (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_R0.rcbuffer->pybuffer.buf, __pyx_t_62, __pyx_pybuffernd_R0.diminfo[0].strides))) / __pyx_v_dRPhi))));
}
1186:
1187: # Compute Pts, dV and ind
+1188: Pts = np.nan*np.ones((3,NP))
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_nan); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_11, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1188, __pyx_L1_error) __pyx_t_20 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1188, __pyx_L1_error) } __pyx_t_20 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1189: ind = np.nan*np.ones((NP,))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_ones); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_3); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Multiply(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1189, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1189, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0;
+1190: dS = np.nan*np.ones((NP,))
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_NP); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_10 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_11); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1190, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1190, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
1191: # This triple loop is the longest part, it takes ~90% of the CPU time
+1192: NP = 0
__pyx_v_NP = 0;
+1193: if Out.lower()=='(x,y,z)':
__pyx_t_3 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1193, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_1) { /* … */ goto __pyx_L33; }
+1194: for ii in range(0,Ln):
__pyx_t_28 = __pyx_v_Ln;
__pyx_t_14 = __pyx_t_28;
for (__pyx_t_30 = 0; __pyx_t_30 < __pyx_t_14; __pyx_t_30+=1) {
__pyx_v_ii = __pyx_t_30;
1195: # Some rare cases with doubles have to be eliminated:
+1196: iii = np.unique(indI[ii,~np.isnan(indI[ii,:])])
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_unique); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_isnan); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_9); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_slice__8); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_11 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_15, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_9); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Invert(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_12); __pyx_t_10 = 0; __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_11, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_12); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1196, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer); __pyx_t_39 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_39 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_v_iii, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_iii.diminfo[0].strides = __pyx_pybuffernd_iii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iii.diminfo[0].shape = __pyx_pybuffernd_iii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_39 < 0)) __PYX_ERR(0, 1196, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_XDECREF_SET(__pyx_v_iii, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
+1197: for jj in range(0,len(iii)):
__pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_iii)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1197, __pyx_L1_error) __pyx_t_18 = __pyx_t_17; for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_18; __pyx_t_39+=1) { __pyx_v_jj = __pyx_t_39;
+1198: indiijj = iii[jj]
__pyx_t_63 = __pyx_v_jj;
__pyx_v_indiijj = (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_iii.rcbuffer->pybuffer.buf, __pyx_t_63, __pyx_pybuffernd_iii.diminfo[0].strides));
+1199: phi = PhiMinMax[0] + (0.5+indiijj)*dPhir[ii]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_64 = __pyx_v_ii; __pyx_t_4 = PyFloat_FromDouble(((0.5 + __pyx_v_indiijj) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_64)) ))))); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = PyNumber_Add(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_phi = __pyx_t_7;
+1200: Pts[0,NP] = PtsCross[0,ii]*Ccos(phi)
__pyx_t_65 = 0;
__pyx_t_66 = __pyx_v_ii;
__pyx_t_67 = 0;
__pyx_t_68 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_67, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_68, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_65, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_66, __pyx_pybuffernd_PtsCross.diminfo[1].strides)) * cos(__pyx_v_phi));
+1201: Pts[1,NP] = PtsCross[0,ii]*Csin(phi)
__pyx_t_69 = 0;
__pyx_t_70 = __pyx_v_ii;
__pyx_t_71 = 1;
__pyx_t_72 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_72, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_70, __pyx_pybuffernd_PtsCross.diminfo[1].strides)) * sin(__pyx_v_phi));
+1202: Pts[2,NP] = PtsCross[1,ii]
__pyx_t_73 = 1;
__pyx_t_74 = __pyx_v_ii;
__pyx_t_75 = 2;
__pyx_t_76 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_76, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_73, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_74, __pyx_pybuffernd_PtsCross.diminfo[1].strides));
+1203: ind[NP] = NRPhi0[ii] + indiijj
__pyx_t_77 = __pyx_v_ii;
__pyx_t_78 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_ind.rcbuffer->pybuffer.buf, __pyx_t_78, __pyx_pybuffernd_ind.diminfo[0].strides) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_77)) ))) + __pyx_v_indiijj);
+1204: dS[NP] = dLr[ii]*dRPhir[ii]
__pyx_t_79 = __pyx_v_ii;
__pyx_t_80 = __pyx_v_ii;
__pyx_t_81 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dS.rcbuffer->pybuffer.buf, __pyx_t_81, __pyx_pybuffernd_dS.diminfo[0].strides) = ((*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_dLr.diminfo[0].strides)) * (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_80, __pyx_pybuffernd_dRPhir.diminfo[0].strides)));
+1205: NP += 1
__pyx_v_NP = (__pyx_v_NP + 1);
}
}
1206: else:
+1207: for ii in range(0,Ln):
/*else*/ {
__pyx_t_28 = __pyx_v_Ln;
__pyx_t_14 = __pyx_t_28;
for (__pyx_t_30 = 0; __pyx_t_30 < __pyx_t_14; __pyx_t_30+=1) {
__pyx_v_ii = __pyx_t_30;
+1208: iii = np.unique(indI[ii,~np.isnan(indI[ii,:])])
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_unique); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_isnan); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_10); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_slice__8); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_11 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_15, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Invert(__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_9); __pyx_t_4 = 0; __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indI), __pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_12 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_11, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1208, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_12); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iii.rcbuffer->pybuffer); __pyx_t_39 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_39 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iii.rcbuffer->pybuffer, (PyObject*)__pyx_v_iii, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_iii.diminfo[0].strides = __pyx_pybuffernd_iii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iii.diminfo[0].shape = __pyx_pybuffernd_iii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_39 < 0)) __PYX_ERR(0, 1208, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_XDECREF_SET(__pyx_v_iii, ((PyArrayObject *)__pyx_t_12)); __pyx_t_12 = 0;
+1209: for jj in range(0,len(iii)):
__pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_iii)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1209, __pyx_L1_error) __pyx_t_18 = __pyx_t_17; for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_18; __pyx_t_39+=1) { __pyx_v_jj = __pyx_t_39;
+1210: indiijj = iii[jj]
__pyx_t_82 = __pyx_v_jj;
__pyx_v_indiijj = (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_iii.rcbuffer->pybuffer.buf, __pyx_t_82, __pyx_pybuffernd_iii.diminfo[0].strides));
+1211: Pts[0,NP] = PtsCross[0,ii]
__pyx_t_83 = 0;
__pyx_t_84 = __pyx_v_ii;
__pyx_t_85 = 0;
__pyx_t_86 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_85, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_86, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_83, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_84, __pyx_pybuffernd_PtsCross.diminfo[1].strides));
+1212: Pts[1,NP] = PtsCross[1,ii]
__pyx_t_87 = 1;
__pyx_t_88 = __pyx_v_ii;
__pyx_t_89 = 1;
__pyx_t_90 = __pyx_v_NP;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_89, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_90, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_88, __pyx_pybuffernd_PtsCross.diminfo[1].strides));
+1213: Pts[2,NP] = PhiMinMax[0] + (0.5+indiijj)*dPhir[ii]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_91 = __pyx_v_ii; __pyx_t_3 = PyFloat_FromDouble(((0.5 + __pyx_v_indiijj) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_91)) ))))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_Add(__pyx_t_12, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1213, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1213, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_92 = 2; __pyx_t_93 = __pyx_v_NP; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_93, __pyx_pybuffernd_Pts.diminfo[1].strides) = __pyx_t_7;
+1214: ind[NP] = NRPhi0[ii] + indiijj
__pyx_t_94 = __pyx_v_ii;
__pyx_t_95 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_ind.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_ind.diminfo[0].strides) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_94)) ))) + __pyx_v_indiijj);
+1215: dS[NP] = dLr[ii]*dRPhir[ii]
__pyx_t_96 = __pyx_v_ii;
__pyx_t_97 = __pyx_v_ii;
__pyx_t_98 = __pyx_v_NP;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dS.rcbuffer->pybuffer.buf, __pyx_t_98, __pyx_pybuffernd_dS.diminfo[0].strides) = ((*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_96, __pyx_pybuffernd_dLr.diminfo[0].strides)) * (*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_97, __pyx_pybuffernd_dRPhir.diminfo[0].strides)));
+1216: NP += 1
__pyx_v_NP = (__pyx_v_NP + 1);
}
}
}
__pyx_L33:;
+1217: indok = (~np.isnan(ind)).nonzero()[0]
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_isnan); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_12, ((PyObject *)__pyx_v_ind)) : __Pyx_PyObject_CallOneArg(__pyx_t_11, ((PyObject *)__pyx_v_ind)); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_Invert(__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1217, __pyx_L1_error) __pyx_t_25 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indok.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indok.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indok.rcbuffer->pybuffer, (PyObject*)__pyx_v_indok, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_indok.diminfo[0].strides = __pyx_pybuffernd_indok.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indok.diminfo[0].shape = __pyx_pybuffernd_indok.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1217, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_indok = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+1218: ind = ind[indok]
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_indok)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1218, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1218, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
+1219: dS = dS[indok]
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dS), ((PyObject *)__pyx_v_indok)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1219, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1219, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_dS, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0;
+1220: if len(indok)==1:
__pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_indok)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1220, __pyx_L1_error) __pyx_t_1 = ((__pyx_t_17 == 1) != 0); if (__pyx_t_1) { /* … */ goto __pyx_L42; }
+1221: Pts = Pts[:,indok].reshape((3,1))
__pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_slice__8); __Pyx_INCREF(((PyObject *)__pyx_v_indok)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indok)); PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_indok)); __pyx_t_11 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_reshape); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_11, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1221, __pyx_L1_error) __pyx_t_20 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_28 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1221, __pyx_L1_error) } __pyx_t_20 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; /* … */ __pyx_tuple__49 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_1); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(0, 1221, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__49); __Pyx_GIVEREF(__pyx_tuple__49);
1222: else:
+1223: Pts = Pts[:,indok]
/*else*/ {
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1223, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_slice__8);
__Pyx_GIVEREF(__pyx_slice__8);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_slice__8);
__Pyx_INCREF(((PyObject *)__pyx_v_indok));
__Pyx_GIVEREF(((PyObject *)__pyx_v_indok));
PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_indok));
__pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Pts), __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1223, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1223, __pyx_L1_error)
__pyx_t_20 = ((PyArrayObject *)__pyx_t_9);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__pyx_t_28 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_28 < 0)) {
PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23);
}
__pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0;
}
__pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_28 < 0)) __PYX_ERR(0, 1223, __pyx_L1_error)
}
__pyx_t_20 = 0;
__Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_9));
__pyx_t_9 = 0;
}
__pyx_L42:;
1224: else:
+1225: Pts, dS, ind, NL, Rref, dRPhir, nRPhi0 = np.ones((3,0)), np.ones((0,)),\
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_11, function);
}
}
__pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_3, __pyx_tuple__50) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_tuple__50);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__pyx_tuple__50 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_0); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__50);
__Pyx_GIVEREF(__pyx_tuple__50);
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_12);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_12, function);
}
}
__pyx_t_11 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_3, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_tuple__51);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (!(likely(((__pyx_t_11) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_11, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1225, __pyx_L1_error)
__pyx_tuple__51 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_tuple__51)) __PYX_ERR(0, 1225, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__51);
__Pyx_GIVEREF(__pyx_tuple__51);
+1226: np.ones((0,)), np.nan*np.ones((VPoly.shape[1]-1,)),\
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_12 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_ones); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyInt_FromSsize_t(((__pyx_v_VPoly.shape[1]) - 1)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_10, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_5); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1226, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1226, __pyx_L1_error)
+1227: np.ones((0,)), np.ones((0,)), 0
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_3, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1227, __pyx_L1_error) __pyx_t_28 = 0; __pyx_t_20 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_20, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) } __pyx_t_20 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_11); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_11); __pyx_t_11 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_12); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_12); __pyx_t_12 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_15); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_15); __pyx_t_15 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_23, &__pyx_t_22, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_23); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_23, __pyx_t_22, __pyx_t_21); } __pyx_t_23 = __pyx_t_22 = __pyx_t_21 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_22, &__pyx_t_23); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_v_dRPhir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_23); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_22, __pyx_t_23); } __pyx_t_21 = __pyx_t_22 = __pyx_t_23 = 0; } __pyx_pybuffernd_dRPhir.diminfo[0].strides = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dRPhir.diminfo[0].shape = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1225, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_dRPhir = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __pyx_v_nRPhi0 = __pyx_t_28; } __pyx_L7:;
+1228: return Pts, dS, ind.astype(int), NL, dLr, Rref, dRPhir, nRPhi0, VPbis
__Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ind), __pyx_n_s_astype); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_15, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_nRPhi0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_15 = PyTuple_New(9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1228, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_15, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_15, 1, ((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_5); __Pyx_INCREF(((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_NL)); PyTuple_SET_ITEM(__pyx_t_15, 3, ((PyObject *)__pyx_v_NL)); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_15, 4, ((PyObject *)__pyx_v_dLr)); __Pyx_INCREF(((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Rref)); PyTuple_SET_ITEM(__pyx_t_15, 5, ((PyObject *)__pyx_v_Rref)); __Pyx_INCREF(((PyObject *)__pyx_v_dRPhir)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dRPhir)); PyTuple_SET_ITEM(__pyx_t_15, 6, ((PyObject *)__pyx_v_dRPhir)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_15, 7, __pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_VPbis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_VPbis)); PyTuple_SET_ITEM(__pyx_t_15, 8, ((PyObject *)__pyx_v_VPbis)); __pyx_t_5 = 0; __pyx_t_4 = 0; __pyx_r = __pyx_t_15; __pyx_t_15 = 0; goto __pyx_L0;
1229:
1230:
1231:
1232: @cython.cdivision(True)
1233: @cython.wraparound(False)
1234: @cython.boundscheck(False)
+1235: def _Ves_Smesh_Tor_SubFromInd_cython(double dL, double dRPhi,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_35_Ves_Smesh_Tor_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_34_Ves_Smesh_Tor_SubFromInd_cython[] = " Return the desired submesh indicated by the (numerical) indices,\n for the desired resolution (dR,dZ,dRphi)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_35_Ves_Smesh_Tor_SubFromInd_cython = {"_Ves_Smesh_Tor_SubFromInd_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_35_Ves_Smesh_Tor_SubFromInd_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_34_Ves_Smesh_Tor_SubFromInd_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_35_Ves_Smesh_Tor_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_dL;
double __pyx_v_dRPhi;
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ind = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_PhiMinMax = 0;
PyObject *__pyx_v_Out = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Tor_SubFromInd_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dL,&__pyx_n_s_dRPhi,&__pyx_n_s_VPoly,&__pyx_n_s_ind,&__pyx_n_s_DIn,&__pyx_n_s_VIn,&__pyx_n_s_PhiMinMax,&__pyx_n_s_Out,&__pyx_n_s_margin,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_34_Ves_Smesh_Tor_SubFromInd_cython(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_dL, double __pyx_v_dRPhi, __Pyx_memviewslice __pyx_v_VPoly, __Pyx_memviewslice __pyx_v_ind, double __pyx_v_DIn, PyObject *__pyx_v_VIn, PyObject *__pyx_v_PhiMinMax, PyObject *__pyx_v_Out, double __pyx_v_margin) {
__Pyx_memviewslice __pyx_v_dRPhirRef = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_dPhir = { 0, 0, { 0 }, { 0 }, { 0 } };
CYTHON_UNUSED __Pyx_memviewslice __pyx_v_indL = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi0 = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_NRPhi = { 0, 0, { 0 }, { 0 }, { 0 } };
long __pyx_v_NP;
long __pyx_v_Rratio;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_iiL;
int __pyx_v_iiphi;
int __pyx_v_Ln;
CYTHON_UNUSED int __pyx_v_nn;
CYTHON_UNUSED int __pyx_v_kk;
int __pyx_v_nRPhi0;
__Pyx_memviewslice __pyx_v_Phi = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_PtsCross = 0;
PyArrayObject *__pyx_v_VPbis = 0;
PyArrayObject *__pyx_v_dS = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_dRPhir = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_NL = 0;
PyObject *__pyx_v_DPhiMinMax = NULL;
PyObject *__pyx_v_dLrRef = NULL;
PyObject *__pyx_v_RrefRef = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_NL;
__Pyx_Buffer __pyx_pybuffer_NL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsCross;
__Pyx_Buffer __pyx_pybuffer_PtsCross;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPbis;
__Pyx_Buffer __pyx_pybuffer_VPbis;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dRPhir;
__Pyx_Buffer __pyx_pybuffer_dRPhir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Tor_SubFromInd_cython", 0);
__Pyx_INCREF(__pyx_v_PhiMinMax);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_PtsCross.pybuffer.buf = NULL;
__pyx_pybuffer_PtsCross.refcount = 0;
__pyx_pybuffernd_PtsCross.data = NULL;
__pyx_pybuffernd_PtsCross.rcbuffer = &__pyx_pybuffer_PtsCross;
__pyx_pybuffer_VPbis.pybuffer.buf = NULL;
__pyx_pybuffer_VPbis.refcount = 0;
__pyx_pybuffernd_VPbis.data = NULL;
__pyx_pybuffernd_VPbis.rcbuffer = &__pyx_pybuffer_VPbis;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_dRPhir.pybuffer.buf = NULL;
__pyx_pybuffer_dRPhir.refcount = 0;
__pyx_pybuffernd_dRPhir.data = NULL;
__pyx_pybuffernd_dRPhir.rcbuffer = &__pyx_pybuffer_dRPhir;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_NL.pybuffer.buf = NULL;
__pyx_pybuffer_NL.refcount = 0;
__pyx_pybuffernd_NL.data = NULL;
__pyx_pybuffernd_NL.rcbuffer = &__pyx_pybuffer_NL;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_23, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_24, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_35, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Tor_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_dRPhirRef, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_dPhir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indL, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi0, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_NRPhi, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_Phi, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsCross);
__Pyx_XDECREF((PyObject *)__pyx_v_VPbis);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_dRPhir);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_NL);
__Pyx_XDECREF(__pyx_v_DPhiMinMax);
__Pyx_XDECREF(__pyx_v_dLrRef);
__Pyx_XDECREF(__pyx_v_RrefRef);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ind, 1);
__Pyx_XDECREF(__pyx_v_PhiMinMax);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__192 = PyTuple_Pack(42, __pyx_n_s_dL, __pyx_n_s_dRPhi, __pyx_n_s_VPoly, __pyx_n_s_ind, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_PhiMinMax, __pyx_n_s_Out, __pyx_n_s_margin, __pyx_n_s_dRPhirRef, __pyx_n_s_dPhir, __pyx_n_s_indL, __pyx_n_s_NRPhi0, __pyx_n_s_NRPhi, __pyx_n_s_NR, __pyx_n_s_NZ, __pyx_n_s_Rn, __pyx_n_s_Zn, __pyx_n_s_NP, __pyx_n_s_Rratio, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_iiL, __pyx_n_s_iiphi, __pyx_n_s_Ln, __pyx_n_s_nn, __pyx_n_s_kk, __pyx_n_s_nRPhi0, __pyx_n_s_Phi, __pyx_n_s_Pts, __pyx_n_s_indI, __pyx_n_s_PtsCross, __pyx_n_s_VPbis, __pyx_n_s_R0, __pyx_n_s_dS, __pyx_n_s_dLr, __pyx_n_s_dRPhir, __pyx_n_s_Rref, __pyx_n_s_NL, __pyx_n_s_DPhiMinMax, __pyx_n_s_dLrRef, __pyx_n_s_RrefRef); if (unlikely(!__pyx_tuple__192)) __PYX_ERR(0, 1235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__192);
__Pyx_GIVEREF(__pyx_tuple__192);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_35_Ves_Smesh_Tor_SubFromInd_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1235, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_Tor_SubFromInd_cython, __pyx_t_1) < 0) __PYX_ERR(0, 1235, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(9, 0, 42, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__192, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_Tor_SubFromInd_cython, 1235, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(0, 1235, __pyx_L1_error)
1236: double[:,::1] VPoly, long[::1] ind,
+1237: double DIn=0., VIn=None, PhiMinMax=None,
values[5] = ((PyObject *)Py_None);
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject*)__pyx_kp_s_X_Y_Z);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dRPhi)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromInd_cython", 0, 4, 9, 1); __PYX_ERR(0, 1235, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromInd_cython", 0, 4, 9, 2); __PYX_ERR(0, 1235, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromInd_cython", 0, 4, 9, 3); __PYX_ERR(0, 1235, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_PhiMinMax);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[8] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_Tor_SubFromInd_cython") < 0)) __PYX_ERR(0, 1235, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1235, __pyx_L3_error)
__pyx_v_dRPhi = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dRPhi == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1235, __pyx_L3_error)
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 1236, __pyx_L3_error)
__pyx_v_ind = __Pyx_PyObject_to_MemoryviewSlice_dc_long(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ind.memview)) __PYX_ERR(0, 1236, __pyx_L3_error)
if (values[4]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1237, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[5];
__pyx_v_PhiMinMax = values[6];
__pyx_v_Out = ((PyObject*)values[7]);
if (values[8]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1238, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__52;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Tor_SubFromInd_cython", 0, 4, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1235, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Tor_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Out), (&PyString_Type), 1, "Out", 1))) __PYX_ERR(0, 1238, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_34_Ves_Smesh_Tor_SubFromInd_cython(__pyx_self, __pyx_v_dL, __pyx_v_dRPhi, __pyx_v_VPoly, __pyx_v_ind, __pyx_v_DIn, __pyx_v_VIn, __pyx_v_PhiMinMax, __pyx_v_Out, __pyx_v_margin);
+1238: str Out='(X,Y,Z)', double margin=_VSMALL):
__pyx_k__52 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1239: """ Return the desired submesh indicated by the (numerical) indices,
1240: for the desired resolution (dR,dZ,dRphi)
1241: """
1242: cdef double[::1] dRPhirRef, dPhir
1243: cdef long[::1] indL, NRPhi0, NRPhi
+1244: cdef long NR, NZ, Rn, Zn, NP=len(ind), Rratio
__pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_ind);
__pyx_v_NP = __pyx_t_1;
+1245: cdef int ii=0, jj=0, iiL, iiphi, Ln, nn=0, kk=0, nRPhi0
__pyx_v_ii = 0; __pyx_v_jj = 0; __pyx_v_nn = 0; __pyx_v_kk = 0;
1246: cdef double[:,::1] Phi
+1247: cdef np.ndarray[double,ndim=2] Pts=np.empty((3,NP)), indI, PtsCross, VPbis
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_NP); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1247, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1247, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_Pts = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 1247, __pyx_L1_error) } else {__pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; } } __pyx_t_6 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+1248: cdef np.ndarray[double,ndim=1] R0, dS=np.empty((NP,)), dLr, dRPhir, Rref
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_NP); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1248, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1248, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_dS = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_dS.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 1248, __pyx_L1_error) } else {__pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; } } __pyx_t_7 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
1249: cdef np.ndarray[long,ndim=1] NL
1250:
1251: # Pre-format input
+1252: if PhiMinMax is None:
__pyx_t_8 = (__pyx_v_PhiMinMax == Py_None);
__pyx_t_9 = (__pyx_t_8 != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L3;
}
+1253: PhiMinMax = [-Cpi,Cpi]
__pyx_t_2 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_PhiMinMax, __pyx_t_3); __pyx_t_3 = 0;
+1254: DPhiMinMax = 2.*Cpi
__pyx_t_3 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_DPhiMinMax = __pyx_t_3; __pyx_t_3 = 0;
1255: else:
+1256: PhiMinMax = [Catan2(Csin(PhiMinMax[0]), Ccos(PhiMinMax[0])),
/*else*/ {
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = PyFloat_FromDouble(atan2(sin(__pyx_t_10), cos(__pyx_t_11))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
/* … */
__pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1256, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_3);
PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_5);
__pyx_t_3 = 0;
__pyx_t_5 = 0;
__Pyx_DECREF_SET(__pyx_v_PhiMinMax, __pyx_t_2);
__pyx_t_2 = 0;
+1257: Catan2(Csin(PhiMinMax[1]), Ccos(PhiMinMax[1]))]
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(atan2(sin(__pyx_t_11), cos(__pyx_t_10))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5);
+1258: if PhiMinMax[1]>=PhiMinMax[0]:
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_5, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1258, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_9) { /* … */ goto __pyx_L4; }
+1259: DPhiMinMax = PhiMinMax[1]-PhiMinMax[0]
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_DPhiMinMax = __pyx_t_2; __pyx_t_2 = 0;
1260: else:
+1261: DPhiMinMax = 2.*Cpi + PhiMinMax[1] - PhiMinMax[0]
/*else*/ {
__pyx_t_2 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1261, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_DPhiMinMax = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_L4:;
}
__pyx_L3:;
1262:
1263:
1264: # Get the actual R and Z resolutions and mesh elements
+1265: PtsCross, dLrRef, indL,\
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1265, __pyx_L1_error) __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 1265, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1265, __pyx_L1_error) if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1265, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_18 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_18 < 0)) { PyErr_Fetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_19, __pyx_t_20, __pyx_t_21); } __pyx_t_19 = __pyx_t_20 = __pyx_t_21 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1265, __pyx_L1_error) } __pyx_t_6 = 0; __pyx_v_PtsCross = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __pyx_v_dLrRef = __pyx_t_4; __pyx_t_4 = 0; __pyx_v_indL = __pyx_t_17; __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL; __pyx_t_22 = ((PyArrayObject *)__pyx_t_12); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_18 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_22, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_18 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_20, __pyx_t_19); } __pyx_t_21 = __pyx_t_20 = __pyx_t_19 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1266, __pyx_L1_error) } __pyx_t_22 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_12); __pyx_t_12 = 0; __pyx_v_RrefRef = __pyx_t_13; __pyx_t_13 = 0; __pyx_t_6 = ((PyArrayObject *)__pyx_t_14); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_18 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_18 < 0)) { PyErr_Fetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_19, __pyx_t_20, __pyx_t_21); } __pyx_t_19 = __pyx_t_20 = __pyx_t_21 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1266, __pyx_L1_error) } __pyx_t_6 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0;
+1266: NL, RrefRef, VPbis = _Ves_Smesh_Cross(VPoly, dL, D1=None, D2=None,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_Smesh_Cross); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_D1, Py_None) < 0) __PYX_ERR(0, 1266, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_D2, Py_None) < 0) __PYX_ERR(0, 1266, __pyx_L1_error) /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1265, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_14 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_12 = PyList_GET_ITEM(sequence, 3); __pyx_t_13 = PyList_GET_ITEM(sequence, 4); __pyx_t_14 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_2,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1265, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_3,&__pyx_t_4,&__pyx_t_2,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; __pyx_t_15 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_15)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_16(__pyx_t_15); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 6) < 0) __PYX_ERR(0, 1265, __pyx_L1_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1265, __pyx_L1_error) __pyx_L6_unpacking_done:; }
+1267: margin=margin, DIn=DIn, VIn=VIn)
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_DIn, __pyx_t_5) < 0) __PYX_ERR(0, 1266, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_VIn, __pyx_v_VIn) < 0) __PYX_ERR(0, 1266, __pyx_L1_error)
+1268: Ln = dLrRef.size
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_dLrRef, __pyx_n_s_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1268, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_Ln = __pyx_t_18;
1269: # Number of Phi per R
+1270: dRPhirRef, dPhir, dRPhir = np.empty((Ln,)), np.empty((Ln,)), -np.ones((Ln,))
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_12); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_23 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_23.memview)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_empty); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_13, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_14); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_24 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_24.memview)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_ones); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_5 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_12, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Negative(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1270, __pyx_L1_error) __pyx_v_dRPhirRef = __pyx_t_23; __pyx_t_23.memview = NULL; __pyx_t_23.data = NULL; __pyx_v_dPhir = __pyx_t_24; __pyx_t_24.memview = NULL; __pyx_t_24.data = NULL; __pyx_t_7 = ((PyArrayObject *)__pyx_t_14); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer); __pyx_t_18 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_18 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_v_dRPhir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_20, __pyx_t_19); } __pyx_t_21 = __pyx_t_20 = __pyx_t_19 = 0; } __pyx_pybuffernd_dRPhir.diminfo[0].strides = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dRPhir.diminfo[0].shape = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1270, __pyx_L1_error) } __pyx_t_7 = 0; __pyx_v_dRPhir = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0;
+1271: dLr, Rref = -np.ones((Ln,)), -np.ones((Ln,))
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_14 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_5, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_12); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Negative(__pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_14 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_12, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Negative(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1271, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_13); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_18 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_18 < 0)) { PyErr_Fetch(&__pyx_t_19, &__pyx_t_20, &__pyx_t_21); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_19, __pyx_t_20, __pyx_t_21); } __pyx_t_19 = __pyx_t_20 = __pyx_t_21 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1271, __pyx_L1_error) } __pyx_t_7 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_13); __pyx_t_13 = 0; __pyx_t_7 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_18 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_18 < 0)) { PyErr_Fetch(&__pyx_t_21, &__pyx_t_20, &__pyx_t_19); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_21, __pyx_t_20, __pyx_t_19); } __pyx_t_21 = __pyx_t_20 = __pyx_t_19 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_18 < 0)) __PYX_ERR(0, 1271, __pyx_L1_error) } __pyx_t_7 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
+1272: NRPhi, NRPhi0 = np.empty((Ln,),dtype=int), np.empty((Ln,),dtype=int)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1272, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1272, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_25 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(__pyx_t_13, PyBUF_WRITABLE); if (unlikely(!__pyx_t_25.memview)) __PYX_ERR(0, 1272, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_v_NRPhi = __pyx_t_17; __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL; __pyx_v_NRPhi0 = __pyx_t_25; __pyx_t_25.memview = NULL; __pyx_t_25.data = NULL;
+1273: Rratio = int(Cceil(np.max(RrefRef)/np.min(RrefRef)))
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_13 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_v_RrefRef) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_RrefRef); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_min); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_5, __pyx_v_RrefRef) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_RrefRef); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1273, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_Rratio = ((long)ceil(__pyx_t_10));
+1274: for ii in range(0,Ln):
__pyx_t_18 = __pyx_v_Ln;
__pyx_t_26 = __pyx_t_18;
for (__pyx_t_27 = 0; __pyx_t_27 < __pyx_t_26; __pyx_t_27+=1) {
__pyx_v_ii = __pyx_t_27;
+1275: NRPhi[ii] = <long>(Cceil(DPhiMinMax*RrefRef[ii]/dRPhi))
__pyx_t_14 = __Pyx_GetItemInt(__pyx_v_RrefRef, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = PyNumber_Multiply(__pyx_v_DPhiMinMax, __pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyFloat_FromDouble(__pyx_v_dRPhi); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_13); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1275, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_28 = __pyx_v_ii; *((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_28)) )) = ((long)ceil(__pyx_t_10));
+1276: dRPhirRef[ii] = DPhiMinMax*RrefRef[ii]/<double>(NRPhi[ii])
__pyx_t_13 = __Pyx_GetItemInt(__pyx_v_RrefRef, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = PyNumber_Multiply(__pyx_v_DPhiMinMax, __pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_29 = __pyx_v_ii; __pyx_t_13 = PyFloat_FromDouble(((double)(*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_29)) ))))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1276, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_30 = __pyx_v_ii; *((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_30)) )) = __pyx_t_10;
+1277: dPhir[ii] = DPhiMinMax/<double>(NRPhi[ii])
__pyx_t_31 = __pyx_v_ii;
__pyx_t_2 = PyFloat_FromDouble(((double)(*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_31)) ))))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1277, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_v_DPhiMinMax, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1277, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_13); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1277, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_32 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_32)) )) = __pyx_t_10;
+1278: if ii==0:
__pyx_t_9 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L9;
}
+1279: NRPhi0[ii] = 0
__pyx_t_33 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_33)) )) = 0;
+1280: Phi = np.empty((Ln,NRPhi[ii]*Rratio+1))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_34 = __pyx_v_ii; __pyx_t_5 = __Pyx_PyInt_From_long((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_34)) ))) * __pyx_v_Rratio) + 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_13 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_5, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_12); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_35 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_13, PyBUF_WRITABLE); if (unlikely(!__pyx_t_35.memview)) __PYX_ERR(0, 1280, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_Phi, 1); __pyx_v_Phi = __pyx_t_35; __pyx_t_35.memview = NULL; __pyx_t_35.data = NULL;
1281: else:
+1282: NRPhi0[ii] = NRPhi0[ii-1] + NRPhi[ii-1]
/*else*/ {
__pyx_t_36 = (__pyx_v_ii - 1);
__pyx_t_37 = (__pyx_v_ii - 1);
__pyx_t_38 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_38)) )) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_36)) ))) + (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_37)) ))));
}
__pyx_L9:;
+1283: for jj in range(0,NRPhi[ii]):
__pyx_t_39 = __pyx_v_ii;
__pyx_t_40 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_39)) )));
__pyx_t_41 = __pyx_t_40;
for (__pyx_t_42 = 0; __pyx_t_42 < __pyx_t_41; __pyx_t_42+=1) {
__pyx_v_jj = __pyx_t_42;
+1284: Phi[ii,jj] = PhiMinMax[0] + (0.5+<double>jj)*dPhir[ii]
__pyx_t_13 = __Pyx_GetItemInt(__pyx_v_PhiMinMax, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_43 = __pyx_v_ii; __pyx_t_14 = PyFloat_FromDouble(((0.5 + ((double)__pyx_v_jj)) * (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dPhir.data) + __pyx_t_43)) ))))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = PyNumber_Add(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1284, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 1284, __pyx_L1_error) } __pyx_t_44 = __pyx_v_ii; __pyx_t_45 = __pyx_v_jj; *((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_44 * __pyx_v_Phi.strides[0]) )) + __pyx_t_45)) )) = __pyx_t_10; } }
+1285: nRPhi0 = NRPhi0[Ln-1]+NRPhi[Ln-1]
__pyx_t_46 = (__pyx_v_Ln - 1); __pyx_t_47 = (__pyx_v_Ln - 1); __pyx_v_nRPhi0 = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_46)) ))) + (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi.data) + __pyx_t_47)) ))));
1286:
+1287: if Out.lower()=='(x,y,z)':
__pyx_t_12 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_12, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1287, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_9) { /* … */ goto __pyx_L12; }
+1288: for ii in range(0,NP):
__pyx_t_40 = __pyx_v_NP;
__pyx_t_41 = __pyx_t_40;
for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_41; __pyx_t_18+=1) {
__pyx_v_ii = __pyx_t_18;
+1289: for jj in range(0,Ln+1):
__pyx_t_48 = (__pyx_v_Ln + 1);
__pyx_t_49 = __pyx_t_48;
for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_49; __pyx_t_26+=1) {
__pyx_v_jj = __pyx_t_26;
+1290: if ind[ii]-NRPhi0[jj]<0.:
__pyx_t_50 = __pyx_v_ii;
__pyx_t_51 = __pyx_v_jj;
__pyx_t_9 = ((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_50)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_51)) )))) < 0.) != 0);
if (__pyx_t_9) {
/* … */
}
}
__pyx_L16_break:;
+1291: break
goto __pyx_L16_break;
+1292: iiL = jj-1
__pyx_v_iiL = (__pyx_v_jj - 1);
+1293: iiphi = ind[ii] - NRPhi0[iiL]
__pyx_t_52 = __pyx_v_ii;
__pyx_t_53 = __pyx_v_iiL;
__pyx_v_iiphi = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_52)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_53)) ))));
+1294: Pts[0,ii] = PtsCross[0,iiL]*Ccos(Phi[iiL,iiphi])
__pyx_t_54 = 0;
__pyx_t_55 = __pyx_v_iiL;
if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 1294, __pyx_L1_error) }
__pyx_t_56 = __pyx_v_iiL;
__pyx_t_57 = __pyx_v_iiphi;
__pyx_t_58 = 0;
__pyx_t_59 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_58, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_59, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_54, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_55, __pyx_pybuffernd_PtsCross.diminfo[1].strides)) * cos((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_56 * __pyx_v_Phi.strides[0]) )) + __pyx_t_57)) )))));
+1295: Pts[1,ii] = PtsCross[0,iiL]*Csin(Phi[iiL,iiphi])
__pyx_t_60 = 0;
__pyx_t_61 = __pyx_v_iiL;
if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 1295, __pyx_L1_error) }
__pyx_t_62 = __pyx_v_iiL;
__pyx_t_63 = __pyx_v_iiphi;
__pyx_t_64 = 1;
__pyx_t_65 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_64, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_65, __pyx_pybuffernd_Pts.diminfo[1].strides) = ((*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_60, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_61, __pyx_pybuffernd_PtsCross.diminfo[1].strides)) * sin((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_62 * __pyx_v_Phi.strides[0]) )) + __pyx_t_63)) )))));
+1296: Pts[2,ii] = PtsCross[1,iiL]
__pyx_t_66 = 1;
__pyx_t_67 = __pyx_v_iiL;
__pyx_t_68 = 2;
__pyx_t_69 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_68, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_69, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_66, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_67, __pyx_pybuffernd_PtsCross.diminfo[1].strides));
+1297: dS[ii] = dLrRef[iiL]*dRPhirRef[iiL]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_dLrRef, __pyx_v_iiL, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_70 = __pyx_v_iiL; __pyx_t_14 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_70)) )))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = PyNumber_Multiply(__pyx_t_12, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_13); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1297, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_71 = __pyx_v_ii; *__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dS.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_dS.diminfo[0].strides) = __pyx_t_10;
+1298: if dRPhir[iiL]==-1.:
__pyx_t_72 = __pyx_v_iiL;
__pyx_t_9 = (((*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_72, __pyx_pybuffernd_dRPhir.diminfo[0].strides)) == -1.) != 0);
if (__pyx_t_9) {
/* … */
}
}
+1299: dRPhir[iiL] = dRPhirRef[iiL]
__pyx_t_73 = __pyx_v_iiL;
__pyx_t_74 = __pyx_v_iiL;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_74, __pyx_pybuffernd_dRPhir.diminfo[0].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_73)) )));
+1300: dLr[iiL] = dLrRef[iiL]
__pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dLrRef, __pyx_v_iiL, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1300, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_13); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1300, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_75 = __pyx_v_iiL; *__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_75, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_t_10;
+1301: Rref[iiL] = RrefRef[iiL]
__pyx_t_13 = __Pyx_GetItemInt(__pyx_v_RrefRef, __pyx_v_iiL, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1301, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_13); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_76 = __pyx_v_iiL; *__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_Rref.rcbuffer->pybuffer.buf, __pyx_t_76, __pyx_pybuffernd_Rref.diminfo[0].strides) = __pyx_t_10;
1302:
1303: else:
+1304: for ii in range(0,NP):
/*else*/ {
__pyx_t_40 = __pyx_v_NP;
__pyx_t_41 = __pyx_t_40;
for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_41; __pyx_t_18+=1) {
__pyx_v_ii = __pyx_t_18;
+1305: for jj in range(0,Ln+1):
__pyx_t_48 = (__pyx_v_Ln + 1);
__pyx_t_49 = __pyx_t_48;
for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_49; __pyx_t_26+=1) {
__pyx_v_jj = __pyx_t_26;
+1306: if ind[ii]-NRPhi0[jj]<0.:
__pyx_t_77 = __pyx_v_ii;
__pyx_t_78 = __pyx_v_jj;
__pyx_t_9 = ((((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_77)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_78)) )))) < 0.) != 0);
if (__pyx_t_9) {
/* … */
}
}
__pyx_L22_break:;
+1307: break
goto __pyx_L22_break;
+1308: iiL = jj-1
__pyx_v_iiL = (__pyx_v_jj - 1);
+1309: iiphi = ind[ii] - NRPhi0[iiL]
__pyx_t_79 = __pyx_v_ii;
__pyx_t_80 = __pyx_v_iiL;
__pyx_v_iiphi = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_ind.data) + __pyx_t_79)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_NRPhi0.data) + __pyx_t_80)) ))));
+1310: Pts[0,ii] = PtsCross[0,iiL]
__pyx_t_81 = 0;
__pyx_t_82 = __pyx_v_iiL;
__pyx_t_83 = 0;
__pyx_t_84 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_83, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_84, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_81, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_82, __pyx_pybuffernd_PtsCross.diminfo[1].strides));
+1311: Pts[1,ii] = PtsCross[1,iiL]
__pyx_t_85 = 1;
__pyx_t_86 = __pyx_v_iiL;
__pyx_t_87 = 1;
__pyx_t_88 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_88, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.buf, __pyx_t_85, __pyx_pybuffernd_PtsCross.diminfo[0].strides, __pyx_t_86, __pyx_pybuffernd_PtsCross.diminfo[1].strides));
+1312: Pts[2,ii] = Phi[iiL,iiphi]
if (unlikely(!__pyx_v_Phi.memview)) { __Pyx_RaiseUnboundLocalError("Phi"); __PYX_ERR(0, 1312, __pyx_L1_error) }
__pyx_t_89 = __pyx_v_iiL;
__pyx_t_90 = __pyx_v_iiphi;
__pyx_t_91 = 2;
__pyx_t_92 = __pyx_v_ii;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_Pts.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_Pts.diminfo[0].strides, __pyx_t_92, __pyx_pybuffernd_Pts.diminfo[1].strides) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Phi.data + __pyx_t_89 * __pyx_v_Phi.strides[0]) )) + __pyx_t_90)) )));
+1313: dS[ii] = dLrRef[iiL]*dRPhirRef[iiL]
__pyx_t_13 = __Pyx_GetItemInt(__pyx_v_dLrRef, __pyx_v_iiL, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_93 = __pyx_v_iiL; __pyx_t_14 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_93)) )))); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_12 = PyNumber_Multiply(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1313, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_94 = __pyx_v_ii; *__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dS.rcbuffer->pybuffer.buf, __pyx_t_94, __pyx_pybuffernd_dS.diminfo[0].strides) = __pyx_t_10;
+1314: if dRPhir[iiL]==-1.:
__pyx_t_95 = __pyx_v_iiL;
__pyx_t_9 = (((*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_dRPhir.diminfo[0].strides)) == -1.) != 0);
if (__pyx_t_9) {
/* … */
}
}
}
__pyx_L12:;
+1315: dRPhir[iiL] = dRPhirRef[iiL]
__pyx_t_96 = __pyx_v_iiL;
__pyx_t_97 = __pyx_v_iiL;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.buf, __pyx_t_97, __pyx_pybuffernd_dRPhir.diminfo[0].strides) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dRPhirRef.data) + __pyx_t_96)) )));
+1316: dLr[iiL] = dLrRef[iiL]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_dLrRef, __pyx_v_iiL, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1316, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_98 = __pyx_v_iiL; *__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_98, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_t_10;
+1317: Rref[iiL] = RrefRef[iiL]
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_RrefRef, __pyx_v_iiL, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_t_12); if (unlikely((__pyx_t_10 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1317, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_99 = __pyx_v_iiL; *__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_Rref.rcbuffer->pybuffer.buf, __pyx_t_99, __pyx_pybuffernd_Rref.diminfo[0].strides) = __pyx_t_10;
+1318: return Pts, dS, NL, dLr[dLr>-0.5], Rref[Rref>-0.5], \
__Pyx_XDECREF(__pyx_r); __pyx_t_12 = PyObject_RichCompare(((PyObject *)__pyx_v_dLr), __pyx_float_neg_0_5, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1318, __pyx_L1_error) __pyx_t_14 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), __pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyObject_RichCompare(((PyObject *)__pyx_v_Rref), __pyx_float_neg_0_5, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1318, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Rref), __pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* … */ __pyx_t_2 = PyTuple_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_NL)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_t_12); __Pyx_INCREF(((PyObject *)__pyx_v_VPbis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_VPbis)); PyTuple_SET_ITEM(__pyx_t_2, 7, ((PyObject *)__pyx_v_VPbis)); __pyx_t_14 = 0; __pyx_t_13 = 0; __pyx_t_5 = 0; __pyx_t_12 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
+1319: dRPhir[dRPhir>-0.5], <long>nRPhi0, VPbis
__pyx_t_12 = PyObject_RichCompare(((PyObject *)__pyx_v_dRPhir), __pyx_float_neg_0_5, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1319, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dRPhir), __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_long(((long)__pyx_v_nRPhi0)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
1320:
1321:
1322:
1323: ########################################################
1324: ########################################################
1325: # Meshing - Surface - TorStruct
1326: ########################################################
1327:
1328:
1329: @cython.cdivision(True)
1330: @cython.wraparound(False)
1331: @cython.boundscheck(False)
+1332: def _Ves_Smesh_TorStruct_SubFromD_cython(double[::1] PhiMinMax, double dL,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_37_Ves_Smesh_TorStruct_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_36_Ves_Smesh_TorStruct_SubFromD_cython[] = "Return the desired surfacic submesh indicated by the limits (DR,DZ,DPhi),\n for the desired resolution (dR,dZ,dRphi)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_37_Ves_Smesh_TorStruct_SubFromD_cython = {"_Ves_Smesh_TorStruct_SubFromD_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_37_Ves_Smesh_TorStruct_SubFromD_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_36_Ves_Smesh_TorStruct_SubFromD_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_37_Ves_Smesh_TorStruct_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_PhiMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dL;
double __pyx_v_dRPhi;
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_DR = 0;
PyObject *__pyx_v_DZ = 0;
PyObject *__pyx_v_DPhi = 0;
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_Out = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_TorStruct_SubFromD_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_PhiMinMax,&__pyx_n_s_dL,&__pyx_n_s_dRPhi,&__pyx_n_s_VPoly,&__pyx_n_s_DR,&__pyx_n_s_DZ,&__pyx_n_s_DPhi,&__pyx_n_s_DIn,&__pyx_n_s_VIn,&__pyx_n_s_Out,&__pyx_n_s_margin,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_36_Ves_Smesh_TorStruct_SubFromD_cython(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_PhiMinMax, double __pyx_v_dL, double __pyx_v_dRPhi, __Pyx_memviewslice __pyx_v_VPoly, PyObject *__pyx_v_DR, PyObject *__pyx_v_DZ, PyObject *__pyx_v_DPhi, double __pyx_v_DIn, PyObject *__pyx_v_VIn, PyObject *__pyx_v_Out, double __pyx_v_margin) {
double __pyx_v_Dphi;
double __pyx_v_dR0r;
double __pyx_v_dZ0r;
int __pyx_v_NR0;
int __pyx_v_NZ0;
int __pyx_v_R0n;
int __pyx_v_Z0n;
__Pyx_memviewslice __pyx_v_phiMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_R0 = 0;
PyArrayObject *__pyx_v_Z0 = 0;
PyArrayObject *__pyx_v_dsF = 0;
PyArrayObject *__pyx_v_dSM = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_dRPhir = 0;
PyArrayObject *__pyx_v_dS = 0;
PyArrayObject *__pyx_v_indR0 = 0;
PyArrayObject *__pyx_v_indZ0 = 0;
PyArrayObject *__pyx_v_iind = 0;
PyArrayObject *__pyx_v_iindF = 0;
PyArrayObject *__pyx_v_indM = 0;
PyArrayObject *__pyx_v_NL = 0;
PyArrayObject *__pyx_v_ind = 0;
PyArrayObject *__pyx_v_ptsrz = 0;
PyArrayObject *__pyx_v_pts = 0;
PyArrayObject *__pyx_v_PtsM = 0;
PyArrayObject *__pyx_v_VPbis = 0;
PyArrayObject *__pyx_v_Pts = 0;
PyObject *__pyx_v_LPts = 0;
PyObject *__pyx_v_LdS = 0;
PyObject *__pyx_v_Lind = 0;
CYTHON_UNUSED PyObject *__pyx_v_DPhiMinMax = NULL;
int __pyx_v_Full;
PyObject *__pyx_v_DPhi0 = NULL;
PyObject *__pyx_v_DPhi1 = NULL;
CYTHON_UNUSED PyObject *__pyx_v_DDPhi = NULL;
PyObject *__pyx_v_Inter = NULL;
PyObject *__pyx_v_Bounds = NULL;
PyObject *__pyx_v_Faces = NULL;
PyObject *__pyx_v_BC = NULL;
Py_ssize_t __pyx_v_nBounds;
Py_ssize_t __pyx_v_ii;
PyObject *__pyx_v_indin = NULL;
PyObject *__pyx_v_nRPhi0 = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_NL;
__Pyx_Buffer __pyx_pybuffer_NL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsM;
__Pyx_Buffer __pyx_pybuffer_PtsM;
__Pyx_LocalBuf_ND __pyx_pybuffernd_R0;
__Pyx_Buffer __pyx_pybuffer_R0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPbis;
__Pyx_Buffer __pyx_pybuffer_VPbis;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Z0;
__Pyx_Buffer __pyx_pybuffer_Z0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dRPhir;
__Pyx_Buffer __pyx_pybuffer_dRPhir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dSM;
__Pyx_Buffer __pyx_pybuffer_dSM;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dsF;
__Pyx_Buffer __pyx_pybuffer_dsF;
__Pyx_LocalBuf_ND __pyx_pybuffernd_iind;
__Pyx_Buffer __pyx_pybuffer_iind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_iindF;
__Pyx_Buffer __pyx_pybuffer_iindF;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indM;
__Pyx_Buffer __pyx_pybuffer_indM;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indR0;
__Pyx_Buffer __pyx_pybuffer_indR0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indZ0;
__Pyx_Buffer __pyx_pybuffer_indZ0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_pts;
__Pyx_Buffer __pyx_pybuffer_pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ptsrz;
__Pyx_Buffer __pyx_pybuffer_ptsrz;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_TorStruct_SubFromD_cython", 0);
__pyx_pybuffer_R0.pybuffer.buf = NULL;
__pyx_pybuffer_R0.refcount = 0;
__pyx_pybuffernd_R0.data = NULL;
__pyx_pybuffernd_R0.rcbuffer = &__pyx_pybuffer_R0;
__pyx_pybuffer_Z0.pybuffer.buf = NULL;
__pyx_pybuffer_Z0.refcount = 0;
__pyx_pybuffernd_Z0.data = NULL;
__pyx_pybuffernd_Z0.rcbuffer = &__pyx_pybuffer_Z0;
__pyx_pybuffer_dsF.pybuffer.buf = NULL;
__pyx_pybuffer_dsF.refcount = 0;
__pyx_pybuffernd_dsF.data = NULL;
__pyx_pybuffernd_dsF.rcbuffer = &__pyx_pybuffer_dsF;
__pyx_pybuffer_dSM.pybuffer.buf = NULL;
__pyx_pybuffer_dSM.refcount = 0;
__pyx_pybuffernd_dSM.data = NULL;
__pyx_pybuffernd_dSM.rcbuffer = &__pyx_pybuffer_dSM;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_dRPhir.pybuffer.buf = NULL;
__pyx_pybuffer_dRPhir.refcount = 0;
__pyx_pybuffernd_dRPhir.data = NULL;
__pyx_pybuffernd_dRPhir.rcbuffer = &__pyx_pybuffer_dRPhir;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_indR0.pybuffer.buf = NULL;
__pyx_pybuffer_indR0.refcount = 0;
__pyx_pybuffernd_indR0.data = NULL;
__pyx_pybuffernd_indR0.rcbuffer = &__pyx_pybuffer_indR0;
__pyx_pybuffer_indZ0.pybuffer.buf = NULL;
__pyx_pybuffer_indZ0.refcount = 0;
__pyx_pybuffernd_indZ0.data = NULL;
__pyx_pybuffernd_indZ0.rcbuffer = &__pyx_pybuffer_indZ0;
__pyx_pybuffer_iind.pybuffer.buf = NULL;
__pyx_pybuffer_iind.refcount = 0;
__pyx_pybuffernd_iind.data = NULL;
__pyx_pybuffernd_iind.rcbuffer = &__pyx_pybuffer_iind;
__pyx_pybuffer_iindF.pybuffer.buf = NULL;
__pyx_pybuffer_iindF.refcount = 0;
__pyx_pybuffernd_iindF.data = NULL;
__pyx_pybuffernd_iindF.rcbuffer = &__pyx_pybuffer_iindF;
__pyx_pybuffer_indM.pybuffer.buf = NULL;
__pyx_pybuffer_indM.refcount = 0;
__pyx_pybuffernd_indM.data = NULL;
__pyx_pybuffernd_indM.rcbuffer = &__pyx_pybuffer_indM;
__pyx_pybuffer_NL.pybuffer.buf = NULL;
__pyx_pybuffer_NL.refcount = 0;
__pyx_pybuffernd_NL.data = NULL;
__pyx_pybuffernd_NL.rcbuffer = &__pyx_pybuffer_NL;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
__pyx_pybuffer_ptsrz.pybuffer.buf = NULL;
__pyx_pybuffer_ptsrz.refcount = 0;
__pyx_pybuffernd_ptsrz.data = NULL;
__pyx_pybuffernd_ptsrz.rcbuffer = &__pyx_pybuffer_ptsrz;
__pyx_pybuffer_pts.pybuffer.buf = NULL;
__pyx_pybuffer_pts.refcount = 0;
__pyx_pybuffernd_pts.data = NULL;
__pyx_pybuffernd_pts.rcbuffer = &__pyx_pybuffer_pts;
__pyx_pybuffer_PtsM.pybuffer.buf = NULL;
__pyx_pybuffer_PtsM.refcount = 0;
__pyx_pybuffernd_PtsM.data = NULL;
__pyx_pybuffernd_PtsM.rcbuffer = &__pyx_pybuffer_PtsM;
__pyx_pybuffer_VPbis.pybuffer.buf = NULL;
__pyx_pybuffer_VPbis.refcount = 0;
__pyx_pybuffernd_VPbis.data = NULL;
__pyx_pybuffernd_VPbis.rcbuffer = &__pyx_pybuffer_VPbis;
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__Pyx_XDECREF(__pyx_t_31);
__Pyx_XDECREF(__pyx_t_33);
__Pyx_XDECREF(__pyx_t_41);
__PYX_XDEC_MEMVIEW(&__pyx_t_49, 1);
__Pyx_XDECREF(__pyx_t_53);
__Pyx_XDECREF(__pyx_t_54);
__Pyx_XDECREF(__pyx_t_56);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dsF.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iindF.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_TorStruct_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dsF.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iindF.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_phiMinMax, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_R0);
__Pyx_XDECREF((PyObject *)__pyx_v_Z0);
__Pyx_XDECREF((PyObject *)__pyx_v_dsF);
__Pyx_XDECREF((PyObject *)__pyx_v_dSM);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_dRPhir);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_indR0);
__Pyx_XDECREF((PyObject *)__pyx_v_indZ0);
__Pyx_XDECREF((PyObject *)__pyx_v_iind);
__Pyx_XDECREF((PyObject *)__pyx_v_iindF);
__Pyx_XDECREF((PyObject *)__pyx_v_indM);
__Pyx_XDECREF((PyObject *)__pyx_v_NL);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF((PyObject *)__pyx_v_ptsrz);
__Pyx_XDECREF((PyObject *)__pyx_v_pts);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsM);
__Pyx_XDECREF((PyObject *)__pyx_v_VPbis);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF(__pyx_v_LPts);
__Pyx_XDECREF(__pyx_v_LdS);
__Pyx_XDECREF(__pyx_v_Lind);
__Pyx_XDECREF(__pyx_v_DPhiMinMax);
__Pyx_XDECREF(__pyx_v_DPhi0);
__Pyx_XDECREF(__pyx_v_DPhi1);
__Pyx_XDECREF(__pyx_v_DDPhi);
__Pyx_XDECREF(__pyx_v_Inter);
__Pyx_XDECREF(__pyx_v_Bounds);
__Pyx_XDECREF(__pyx_v_Faces);
__Pyx_XDECREF(__pyx_v_BC);
__Pyx_XDECREF(__pyx_v_indin);
__Pyx_XDECREF(__pyx_v_nRPhi0);
__PYX_XDEC_MEMVIEW(&__pyx_v_PhiMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__194 = PyTuple_Pack(56, __pyx_n_s_PhiMinMax, __pyx_n_s_dL, __pyx_n_s_dRPhi, __pyx_n_s_VPoly, __pyx_n_s_DR, __pyx_n_s_DZ, __pyx_n_s_DPhi, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_Out, __pyx_n_s_margin, __pyx_n_s_Dphi, __pyx_n_s_dR0r, __pyx_n_s_dZ0r, __pyx_n_s_NR0, __pyx_n_s_NZ0, __pyx_n_s_R0n, __pyx_n_s_Z0n, __pyx_n_s_NRPhi0, __pyx_n_s_phiMinMax, __pyx_n_s_R0, __pyx_n_s_Z0, __pyx_n_s_dsF, __pyx_n_s_dSM, __pyx_n_s_dLr, __pyx_n_s_Rref, __pyx_n_s_dRPhir, __pyx_n_s_dS, __pyx_n_s_indR0, __pyx_n_s_indZ0, __pyx_n_s_iind, __pyx_n_s_iindF, __pyx_n_s_indM, __pyx_n_s_NL, __pyx_n_s_ind, __pyx_n_s_ptsrz, __pyx_n_s_pts, __pyx_n_s_PtsM, __pyx_n_s_VPbis, __pyx_n_s_Pts, __pyx_n_s_LPts, __pyx_n_s_LdS, __pyx_n_s_Lind, __pyx_n_s_DPhiMinMax, __pyx_n_s_Full, __pyx_n_s_DPhi0, __pyx_n_s_DPhi1, __pyx_n_s_DDPhi, __pyx_n_s_Inter, __pyx_n_s_Bounds, __pyx_n_s_Faces, __pyx_n_s_BC, __pyx_n_s_nBounds, __pyx_n_s_ii, __pyx_n_s_indin, __pyx_n_s_nRPhi0); if (unlikely(!__pyx_tuple__194)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__194);
__Pyx_GIVEREF(__pyx_tuple__194);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_37_Ves_Smesh_TorStruct_SubFromD_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_TorStruct_SubFromD_cy, __pyx_t_1) < 0) __PYX_ERR(0, 1332, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__195 = (PyObject*)__Pyx_PyCode_New(11, 0, 56, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__194, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_TorStruct_SubFromD_cy, 1332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__195)) __PYX_ERR(0, 1332, __pyx_L1_error)
1333: double dRPhi,
1334: double[:,::1] VPoly,
+1335: DR=None, DZ=None, DPhi=None,
values[4] = ((PyObject *)Py_None);
values[5] = ((PyObject *)Py_None);
values[6] = ((PyObject *)Py_None);
+1336: double DIn=0., VIn=None,
values[8] = ((PyObject *)Py_None);
values[9] = ((PyObject*)__pyx_kp_s_X_Y_Z);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_PhiMinMax)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromD_cython", 0, 4, 11, 1); __PYX_ERR(0, 1332, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dRPhi)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromD_cython", 0, 4, 11, 2); __PYX_ERR(0, 1332, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromD_cython", 0, 4, 11, 3); __PYX_ERR(0, 1332, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DR);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DZ);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DPhi);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_TorStruct_SubFromD_cython") < 0)) __PYX_ERR(0, 1332, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_PhiMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_PhiMinMax.memview)) __PYX_ERR(0, 1332, __pyx_L3_error)
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1332, __pyx_L3_error)
__pyx_v_dRPhi = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dRPhi == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1333, __pyx_L3_error)
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 1334, __pyx_L3_error)
__pyx_v_DR = values[4];
__pyx_v_DZ = values[5];
__pyx_v_DPhi = values[6];
if (values[7]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1336, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[8];
__pyx_v_Out = ((PyObject*)values[9]);
if (values[10]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1338, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__53;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromD_cython", 0, 4, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1332, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_TorStruct_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Out), (&PyString_Type), 1, "Out", 1))) __PYX_ERR(0, 1337, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_36_Ves_Smesh_TorStruct_SubFromD_cython(__pyx_self, __pyx_v_PhiMinMax, __pyx_v_dL, __pyx_v_dRPhi, __pyx_v_VPoly, __pyx_v_DR, __pyx_v_DZ, __pyx_v_DPhi, __pyx_v_DIn, __pyx_v_VIn, __pyx_v_Out, __pyx_v_margin);
1337: str Out='(X,Y,Z)',
+1338: double margin=_VSMALL):
__pyx_k__53 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1339: """Return the desired surfacic submesh indicated by the limits (DR,DZ,DPhi),
1340: for the desired resolution (dR,dZ,dRphi)
1341: """
+1342: cdef double Dphi, dR0r=0., dZ0r=0.
__pyx_v_dR0r = 0.; __pyx_v_dZ0r = 0.;
+1343: cdef int NR0=0, NZ0=0, R0n, Z0n, NRPhi0
__pyx_v_NR0 = 0; __pyx_v_NZ0 = 0;
+1344: cdef double[::1] phiMinMax = np.array([Catan2(Csin(PhiMinMax[0]),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 0; /* … */ __pyx_t_2 = PyFloat_FromDouble(atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_4)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_5)) )))))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 1344, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_phiMinMax = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+1345: Ccos(PhiMinMax[0])),
__pyx_t_5 = 0;
+1346: Catan2(Csin(PhiMinMax[1]),
__pyx_t_6 = 1; /* … */ __pyx_t_8 = PyFloat_FromDouble(atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_6)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_7)) )))))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+1347: Ccos(PhiMinMax[1]))])
__pyx_t_7 = 1;
1348: cdef np.ndarray[double, ndim=1] R0, Z0, dsF, dSM, dLr, Rref, dRPhir, dS
1349: cdef np.ndarray[long,ndim=1] indR0, indZ0, iind, iindF, indM, NL, ind
1350: cdef np.ndarray[double,ndim=2] ptsrz, pts, PtsM, VPbis, Pts
+1351: cdef list LPts=[], LdS=[], Lind=[]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LPts = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LdS = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_Lind = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1352:
1353: # Pre-format input
+1354: if PhiMinMax is None:
__pyx_t_11 = ((((PyObject *) __pyx_v_PhiMinMax.memview) == Py_None) != 0);
if (__pyx_t_11) {
/* … */
goto __pyx_L3;
}
+1355: PhiMinMax = np.array([-Cpi,Cpi])
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble((-M_PI)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_8); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_2); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 1355, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_XDEC_MEMVIEW(&__pyx_v_PhiMinMax, 1); __pyx_v_PhiMinMax = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+1356: DPhiMinMax = 2.*Cpi
__pyx_t_1 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_DPhiMinMax = __pyx_t_1; __pyx_t_1 = 0;
+1357: Full = True
__pyx_v_Full = 1;
1358: else:
+1359: PhiMinMax = np.array([Catan2(Csin(PhiMinMax[0]),Ccos(PhiMinMax[0])),
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_9 = PyFloat_FromDouble(atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_12)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_13)) )))))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
/* … */
__pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_9);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_8);
PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_8);
__pyx_t_9 = 0;
__pyx_t_8 = 0;
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 1359, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__PYX_XDEC_MEMVIEW(&__pyx_v_PhiMinMax, 1);
__pyx_v_PhiMinMax = __pyx_t_10;
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
+1360: Catan2(Csin(PhiMinMax[1]),Ccos(PhiMinMax[1]))])
__pyx_t_14 = 1;
__pyx_t_15 = 1;
__pyx_t_8 = PyFloat_FromDouble(atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_14)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_15)) )))))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1360, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
+1361: DPhiMinMax = PhiMinMax[1]-PhiMinMax[0] if PhiMinMax[1]>=PhiMinMax[0]\
__pyx_t_16 = 1;
__pyx_t_17 = 0;
if ((((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_16)) ))) >= (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_17)) )))) != 0)) {
__pyx_t_18 = 1;
__pyx_t_19 = 0;
__pyx_t_2 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_18)) ))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_19)) ))))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1361, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
} else {
+1362: else 2.*Cpi + PhiMinMax[1] - PhiMinMax[0]
__pyx_t_20 = 1;
__pyx_t_21 = 0;
__pyx_t_2 = PyFloat_FromDouble((((2. * M_PI) + (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_20)) )))) - (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_21)) ))))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1362, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_t_2;
__pyx_t_2 = 0;
}
__pyx_v_DPhiMinMax = __pyx_t_1;
__pyx_t_1 = 0;
+1363: Full = False
__pyx_v_Full = 0; } __pyx_L3:;
1364:
1365: # Get the limits if any and make sure to replace them in the proper quadrant
+1366: if DPhi is None:
__pyx_t_11 = (__pyx_v_DPhi == Py_None);
__pyx_t_22 = (__pyx_t_11 != 0);
if (__pyx_t_22) {
/* … */
goto __pyx_L4;
}
+1367: DPhi0, DPhi1 = PhiMinMax[0], PhiMinMax[1]
__pyx_t_23 = 0;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_23)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_24 = 1;
__pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_24)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1367, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_DPhi0 = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_v_DPhi1 = __pyx_t_2;
__pyx_t_2 = 0;
1368: else:
+1369: DPhi0 = PhiMinMax[0] if DPhi[0] is None \
/*else*/ {
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1369, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_22 = (__pyx_t_1 == Py_None);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if ((__pyx_t_22 != 0)) {
__pyx_t_25 = 0;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_25)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1369, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_t_1;
__pyx_t_1 = 0;
} else {
+1370: else Catan2(Csin(DPhi[0]),Ccos(DPhi[0]))
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1370, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DPhi, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1370, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyFloat_FromDouble(atan2(sin(__pyx_t_26), cos(__pyx_t_27))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; } __pyx_v_DPhi0 = __pyx_t_2; __pyx_t_2 = 0;
+1371: DPhi1 = PhiMinMax[1] if DPhi[1] is None \
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_22 = (__pyx_t_1 == Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((__pyx_t_22 != 0)) { __pyx_t_28 = 1; __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_28)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; } else {
+1372: else Catan2(Csin(DPhi[1]),Ccos(DPhi[1]))
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DPhi, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1372, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyFloat_FromDouble(atan2(sin(__pyx_t_27), cos(__pyx_t_26))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1372, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; } __pyx_v_DPhi1 = __pyx_t_2; __pyx_t_2 = 0; } __pyx_L4:;
+1373: DDPhi = DPhi1-DPhi0 if DPhi1>DPhi0 else 2.*Cpi+DPhi1-DPhi0
__pyx_t_1 = PyObject_RichCompare(__pyx_v_DPhi1, __pyx_v_DPhi0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error) __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_22) { __pyx_t_1 = PyNumber_Subtract(__pyx_v_DPhi1, __pyx_v_DPhi0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; } else { __pyx_t_1 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_DPhi1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Subtract(__pyx_t_3, __pyx_v_DPhi0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; __pyx_t_1 = 0; } __pyx_v_DDPhi = __pyx_t_2; __pyx_t_2 = 0;
1374:
+1375: Inter, Bounds, Faces = _getBoundsInter2AngSeg(Full, PhiMinMax[0],
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_getBoundsInter2AngSeg); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_Full); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_29 = 0; __pyx_t_8 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_29)) )))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); /* … */ __pyx_v_Inter = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_Bounds = __pyx_t_33; __pyx_t_33 = 0; __pyx_v_Faces = __pyx_t_9; __pyx_t_9 = 0;
+1376: PhiMinMax[1], DPhi0, DPhi1)
__pyx_t_30 = 1; __pyx_t_9 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_30)) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_31 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_31)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_31, __pyx_t_3, __pyx_t_8, __pyx_t_9, __pyx_v_DPhi0, __pyx_v_DPhi1}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_32, 5+__pyx_t_32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[6] = {__pyx_t_31, __pyx_t_3, __pyx_t_8, __pyx_t_9, __pyx_v_DPhi0, __pyx_v_DPhi1}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_32, 5+__pyx_t_32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_33 = PyTuple_New(5+__pyx_t_32); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); if (__pyx_t_31) { __Pyx_GIVEREF(__pyx_t_31); PyTuple_SET_ITEM(__pyx_t_33, 0, __pyx_t_31); __pyx_t_31 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_33, 0+__pyx_t_32, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_33, 1+__pyx_t_32, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_33, 2+__pyx_t_32, __pyx_t_9); __Pyx_INCREF(__pyx_v_DPhi0); __Pyx_GIVEREF(__pyx_v_DPhi0); PyTuple_SET_ITEM(__pyx_t_33, 3+__pyx_t_32, __pyx_v_DPhi0); __Pyx_INCREF(__pyx_v_DPhi1); __Pyx_GIVEREF(__pyx_v_DPhi1); PyTuple_SET_ITEM(__pyx_t_33, 4+__pyx_t_32, __pyx_v_DPhi1); __pyx_t_3 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_33, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1375, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_33 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_33 = PyList_GET_ITEM(sequence, 1); __pyx_t_9 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_33 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_34 = Py_TYPE(__pyx_t_8)->tp_iternext; index = 0; __pyx_t_1 = __pyx_t_34(__pyx_t_8); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_1); index = 1; __pyx_t_33 = __pyx_t_34(__pyx_t_8); if (unlikely(!__pyx_t_33)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_33); index = 2; __pyx_t_9 = __pyx_t_34(__pyx_t_8); if (unlikely(!__pyx_t_9)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_34(__pyx_t_8), 3) < 0) __PYX_ERR(0, 1375, __pyx_L1_error) __pyx_t_34 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_34 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1375, __pyx_L1_error) __pyx_L6_unpacking_done:; }
1377:
+1378: if Inter:
__pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_v_Inter); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1378, __pyx_L1_error) if (__pyx_t_22) { /* … */ goto __pyx_L7; }
+1379: BC = list(Bounds)
__pyx_t_2 = PySequence_List(__pyx_v_Bounds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_BC = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+1380: nBounds = len(Bounds)
__pyx_t_35 = PyObject_Length(__pyx_v_Bounds); if (unlikely(__pyx_t_35 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1380, __pyx_L1_error) __pyx_v_nBounds = __pyx_t_35;
+1381: for ii in range(0,nBounds):
__pyx_t_35 = __pyx_v_nBounds;
__pyx_t_36 = __pyx_t_35;
for (__pyx_t_37 = 0; __pyx_t_37 < __pyx_t_36; __pyx_t_37+=1) {
__pyx_v_ii = __pyx_t_37;
+1382: if BC[ii][0]<PhiMinMax[0]:
__pyx_t_2 = __Pyx_GetItemInt(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_38 = 0; __pyx_t_9 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_38)) )))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_33 = PyObject_RichCompare(__pyx_t_2, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_33); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_33); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1382, __pyx_L1_error) __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if (__pyx_t_22) { /* … */ }
+1383: BC[ii][0] += 2.*Cpi
__Pyx_INCREF(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii)); __pyx_t_33 = PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii); __pyx_t_39 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_33, __pyx_t_39, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1383, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_33, __pyx_t_39, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0) < 0)) __PYX_ERR(0, 1383, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0;
+1384: if BC[ii][1]<=PhiMinMax[0]:
__pyx_t_33 = __Pyx_GetItemInt(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii), 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_40 = 0; __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_40)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyObject_RichCompare(__pyx_t_33, __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1384, __pyx_L1_error) __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1384, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_22) { /* … */ } }
+1385: BC[ii][1] += 2.*Cpi
__Pyx_INCREF(PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii)); __pyx_t_2 = PyList_GET_ITEM(__pyx_v_BC, __pyx_v_ii); __pyx_t_39 = 1; __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_t_39, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_33 = PyFloat_FromDouble((2. * M_PI)); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_33); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_t_39, __pyx_t_9, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0) < 0)) __PYX_ERR(0, 1385, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
1386:
1387: # Required distance effective at max R
+1388: Dphi = DIn/np.max(VPoly[0,:]) if DIn!=0. else 0.
if (((__pyx_v_DIn != 0.) != 0)) {
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_33);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0;
__pyx_t_10.data = __pyx_v_VPoly.data;
__pyx_t_10.memview = __pyx_v_VPoly.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = 0;
Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0];
if ((0)) __PYX_ERR(0, 1388, __pyx_L1_error)
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1];
__pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_33 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_33);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_33) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_33);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1388, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_26 = __pyx_t_27;
} else {
__pyx_t_26 = 0.;
}
__pyx_v_Dphi = __pyx_t_26;
1389:
1390: # Get the mesh for the faces
+1391: if any(Faces) :
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_v_Faces); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1391, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_22) { /* … */ }
+1392: R0, dR0r, indR0,\
if (!(likely(((__pyx_t_33) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_33, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1392, __pyx_L1_error) __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_31); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1392, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1392, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_33); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer); __pyx_t_43 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_R0.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_43 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_R0.rcbuffer->pybuffer, (PyObject*)__pyx_v_R0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_R0.diminfo[0].strides = __pyx_pybuffernd_R0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_R0.diminfo[0].shape = __pyx_pybuffernd_R0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_43 < 0)) __PYX_ERR(0, 1392, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_R0 = ((PyArrayObject *)__pyx_t_33); __pyx_t_33 = 0; __pyx_v_dR0r = __pyx_t_26; __pyx_t_47 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer); __pyx_t_43 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_43 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indR0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_indR0.diminfo[0].strides = __pyx_pybuffernd_indR0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indR0.diminfo[0].shape = __pyx_pybuffernd_indR0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_43 < 0)) __PYX_ERR(0, 1392, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_indR0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_NR0 = __pyx_t_32;
+1393: NR0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[0,:]),
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1393, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_31 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_31)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_31) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_31, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8); __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_31 = PyList_New(2); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_31, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_31, 1, __pyx_t_3); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_33))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_33); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_33); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_33, function); } } __pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_33, __pyx_t_3, __pyx_t_31) : __Pyx_PyObject_CallOneArg(__pyx_t_33, __pyx_t_31); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; /* … */ __pyx_t_31 = PyTuple_New(2); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_33); PyTuple_SET_ITEM(__pyx_t_31, 1, __pyx_t_33); __pyx_t_9 = 0; __pyx_t_33 = 0; /* … */ __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_31, __pyx_t_33); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) { PyObject* sequence = __pyx_t_9; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1392, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_33 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_31 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_33 = PyList_GET_ITEM(sequence, 0); __pyx_t_31 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_33,&__pyx_t_31,&__pyx_t_1,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1392, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_33,&__pyx_t_31,&__pyx_t_1,&__pyx_t_3}; __pyx_t_2 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_34 = Py_TYPE(__pyx_t_2)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_34(__pyx_t_2); if (unlikely(!item)) goto __pyx_L13_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_34(__pyx_t_2), 4) < 0) __PYX_ERR(0, 1392, __pyx_L1_error) __pyx_t_34 = NULL; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; goto __pyx_L14_unpacking_done; __pyx_L13_unpacking_failed:; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_34 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1392, __pyx_L1_error) __pyx_L14_unpacking_done:; }
+1394: np.max(VPoly[0,:])]),
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_max); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1394, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_41 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_41)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_41); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); } } __pyx_t_3 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_31, __pyx_t_41, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_31, __pyx_t_8); __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
+1395: dL, DL=DR, Lim=True, margin=margin)
__pyx_t_33 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); /* … */ __pyx_t_33 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); if (PyDict_SetItem(__pyx_t_33, __pyx_n_s_DL, __pyx_v_DR) < 0) __PYX_ERR(0, 1395, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_33, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1395, __pyx_L1_error) __pyx_t_9 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_33, __pyx_n_s_margin, __pyx_t_9) < 0) __PYX_ERR(0, 1395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1396: Z0, dZ0r, indZ0,\
if (!(likely(((__pyx_t_31) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_31, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1396, __pyx_L1_error) __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1396, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1396, __pyx_L1_error) __pyx_t_32 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_32 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1396, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_31); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer); __pyx_t_43 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_43 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_v_Z0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_Z0.diminfo[0].strides = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Z0.diminfo[0].shape = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_43 < 0)) __PYX_ERR(0, 1396, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_Z0 = ((PyArrayObject *)__pyx_t_31); __pyx_t_31 = 0; __pyx_v_dZ0r = __pyx_t_26; __pyx_t_47 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer); __pyx_t_43 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_43 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_indZ0.diminfo[0].strides = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ0.diminfo[0].shape = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_43 < 0)) __PYX_ERR(0, 1396, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_indZ0 = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_v_NZ0 = __pyx_t_32;
+1397: NZ0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[1,:]),
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1397, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_33 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_t_33) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_33); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); } } __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_31, __pyx_t_2, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_31, __pyx_t_8); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; /* … */ __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_31); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_31); __pyx_t_3 = 0; __pyx_t_31 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, __pyx_t_31); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1396, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_31 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_31 = PyList_GET_ITEM(sequence, 0); __pyx_t_8 = PyList_GET_ITEM(sequence, 1); __pyx_t_9 = PyList_GET_ITEM(sequence, 2); __pyx_t_2 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_31,&__pyx_t_8,&__pyx_t_9,&__pyx_t_2}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1396, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_31,&__pyx_t_8,&__pyx_t_9,&__pyx_t_2}; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_34 = Py_TYPE(__pyx_t_1)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_34(__pyx_t_1); if (unlikely(!item)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_34(__pyx_t_1), 4) < 0) __PYX_ERR(0, 1396, __pyx_L1_error) __pyx_t_34 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L16_unpacking_done; __pyx_L15_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_34 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1396, __pyx_L1_error) __pyx_L16_unpacking_done:; }
+1398: np.max(VPoly[1,:])]),
__Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_max); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1398, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_33 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_41 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_41)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_41); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_2 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_41, __pyx_t_33) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_33); __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0; __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1399: dL, DL=DZ, Lim=True, margin=margin)
__pyx_t_31 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); /* … */ __pyx_t_31 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); if (PyDict_SetItem(__pyx_t_31, __pyx_n_s_DL, __pyx_v_DZ) < 0) __PYX_ERR(0, 1399, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_31, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1399, __pyx_L1_error) __pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_31, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 1399, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1400: R0n, Z0n = len(R0), len(Z0)
__pyx_t_35 = PyObject_Length(((PyObject *)__pyx_v_R0)); if (unlikely(__pyx_t_35 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1400, __pyx_L1_error) __pyx_t_36 = PyObject_Length(((PyObject *)__pyx_v_Z0)); if (unlikely(__pyx_t_36 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1400, __pyx_L1_error) __pyx_v_R0n = __pyx_t_35; __pyx_v_Z0n = __pyx_t_36;
+1401: ptsrz = np.array([np.tile(R0,Z0n),np.repeat(Z0,R0n)])
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_tile); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_Z0n); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_31)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_R0), __pyx_t_8}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_31, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_31)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_R0), __pyx_t_8}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_31, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_33 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_33, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_R0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_R0)); PyTuple_SET_ITEM(__pyx_t_33, 0+__pyx_t_32, ((PyObject *)__pyx_v_R0)); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_33, 1+__pyx_t_32, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_31, __pyx_t_33, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; } __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_repeat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __pyx_t_33 = __Pyx_PyInt_From_int(__pyx_v_R0n); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_1 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_Z0), __pyx_t_33}; __pyx_t_31 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_Z0), __pyx_t_33}; __pyx_t_31 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; } else #endif { __pyx_t_41 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_41, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_Z0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Z0)); PyTuple_SET_ITEM(__pyx_t_41, 0+__pyx_t_32, ((PyObject *)__pyx_v_Z0)); __Pyx_GIVEREF(__pyx_t_33); PyTuple_SET_ITEM(__pyx_t_41, 1+__pyx_t_32, __pyx_t_33); __pyx_t_33 = 0; __pyx_t_31 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_41, NULL); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_31); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_31); __pyx_t_2 = 0; __pyx_t_31 = 0; __pyx_t_31 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_31)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_31) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_31, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8); __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1401, __pyx_L1_error) __pyx_t_48 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer, (PyObject*)__pyx_v_ptsrz, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_ptsrz.diminfo[0].strides = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ptsrz.diminfo[0].shape = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ptsrz.diminfo[1].strides = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ptsrz.diminfo[1].shape = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1401, __pyx_L1_error) } __pyx_t_48 = 0; __pyx_v_ptsrz = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+1402: iind = NR0*np.repeat(indZ0,R0n) + np.tile(indR0,Z0n)
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NR0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_repeat); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_R0n); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_31)) { PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_indZ0), __pyx_t_8}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_31, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_31)) { PyObject *__pyx_temp[3] = {__pyx_t_2, ((PyObject *)__pyx_v_indZ0), __pyx_t_8}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_31, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else #endif { __pyx_t_41 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); if (__pyx_t_2) { __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_41, 0, __pyx_t_2); __pyx_t_2 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indZ0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indZ0)); PyTuple_SET_ITEM(__pyx_t_41, 0+__pyx_t_32, ((PyObject *)__pyx_v_indZ0)); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_41, 1+__pyx_t_32, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_31, __pyx_t_41, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; } __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __pyx_t_31 = PyNumber_Multiply(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_tile); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_Z0n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; __pyx_t_32 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_41))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_41); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_41); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_41, function); __pyx_t_32 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_41)) { PyObject *__pyx_temp[3] = {__pyx_t_8, ((PyObject *)__pyx_v_indR0), __pyx_t_3}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_41, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_41)) { PyObject *__pyx_temp[3] = {__pyx_t_8, ((PyObject *)__pyx_v_indR0), __pyx_t_3}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_41, __pyx_temp+1-__pyx_t_32, 2+__pyx_t_32); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_32); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_8) { __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); __pyx_t_8 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indR0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indR0)); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_32, ((PyObject *)__pyx_v_indR0)); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_32, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_41, __pyx_t_2, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = PyNumber_Add(__pyx_t_31, __pyx_t_9); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1402, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_41) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_41, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1402, __pyx_L1_error) __pyx_t_47 = ((PyArrayObject *)__pyx_t_41); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iind.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iind.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iind.rcbuffer->pybuffer, (PyObject*)__pyx_v_iind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_iind.diminfo[0].strides = __pyx_pybuffernd_iind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iind.diminfo[0].shape = __pyx_pybuffernd_iind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1402, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_iind = ((PyArrayObject *)__pyx_t_41); __pyx_t_41 = 0;
+1403: indin = Path(VPoly.T).contains_points(ptsrz.T, transform=None,
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_Path); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_49 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_49, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_49) == 0)) __PYX_ERR(0, 1403, __pyx_L1_error) __pyx_t_31 = __pyx_memoryview_fromslice(__pyx_t_49, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __PYX_XDEC_MEMVIEW(&__pyx_t_49, 1); __pyx_t_49.memview = NULL; __pyx_t_49.data = NULL; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_41 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, __pyx_t_31) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_31); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_41, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ptsrz), __pyx_n_s_T); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_31 = PyTuple_New(1); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_GIVEREF(__pyx_t_41); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); if (PyDict_SetItem(__pyx_t_41, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 1403, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_41, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 1403, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_31, __pyx_t_41); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_v_indin = __pyx_t_2; __pyx_t_2 = 0;
1404: radius=0.0)
+1405: if np.any(indin):
__Pyx_GetModuleGlobalName(__pyx_t_41, __pyx_n_s_np); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_41, __pyx_n_s_any); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_41)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_41); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); } } __pyx_t_2 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_31, __pyx_t_41, __pyx_v_indin) : __Pyx_PyObject_CallOneArg(__pyx_t_31, __pyx_v_indin); __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1405, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_22) { /* … */ }
+1406: ptsrz = ptsrz[:,indin] if indin.sum()>1 \
__pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_41))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_41); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_41); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_41, function); } } __pyx_t_31 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_41, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_41); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = PyObject_RichCompare(__pyx_t_31, __pyx_int_1, Py_GT); __Pyx_XGOTREF(__pyx_t_41); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_41); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; if (__pyx_t_22) { __pyx_t_41 = PyTuple_New(2); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_41, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_41, 1, __pyx_v_indin); __pyx_t_31 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_t_41); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1406, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; if (!(likely(((__pyx_t_31) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_31, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1406, __pyx_L1_error) __pyx_t_2 = __pyx_t_31; __pyx_t_31 = 0; } else {
+1407: else ptsrz[:,indin].reshape((2,1))
__pyx_t_41 = PyTuple_New(2); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_41, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_41, 1, __pyx_v_indin); __pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_t_41); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_reshape); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_41))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_41); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_41); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_41, function); } } __pyx_t_31 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_41, __pyx_t_9, __pyx_tuple__39) : __Pyx_PyObject_CallOneArg(__pyx_t_41, __pyx_tuple__39); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; if (!(likely(((__pyx_t_31) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_31, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1407, __pyx_L1_error) __pyx_t_2 = __pyx_t_31; __pyx_t_31 = 0; } { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_2), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ptsrz.rcbuffer->pybuffer, (PyObject*)__pyx_v_ptsrz, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_ptsrz.diminfo[0].strides = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ptsrz.diminfo[0].shape = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ptsrz.diminfo[1].strides = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ptsrz.diminfo[1].shape = __pyx_pybuffernd_ptsrz.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1406, __pyx_L1_error) } __Pyx_DECREF_SET(__pyx_v_ptsrz, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+1408: iindF = iind[indin]
__pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_iind), __pyx_v_indin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1408, __pyx_L1_error) __pyx_t_47 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_iindF.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iindF.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_iindF.rcbuffer->pybuffer, (PyObject*)__pyx_v_iindF, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_iindF.diminfo[0].strides = __pyx_pybuffernd_iindF.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_iindF.diminfo[0].shape = __pyx_pybuffernd_iindF.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1408, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_iindF = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+1409: dsF = dR0r*dZ0r*np.ones((indin.sum(),))
__pyx_t_2 = PyFloat_FromDouble((__pyx_v_dR0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_41, __pyx_n_s_np); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_41, __pyx_n_s_ones); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_41 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_41); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_41)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_41); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_31 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_41, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_3); __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_t_31); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1409, __pyx_L1_error) __pyx_t_42 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dsF.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dsF.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dsF.rcbuffer->pybuffer, (PyObject*)__pyx_v_dsF, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_dsF.diminfo[0].strides = __pyx_pybuffernd_dsF.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dsF.diminfo[0].shape = __pyx_pybuffernd_dsF.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1409, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dsF = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
1410:
1411: # First face
+1412: if Faces[0]:
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_Faces, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1412, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_22) { /* … */ }
+1413: if Out.lower()=='(x,y,z)':
__pyx_t_9 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_22 = (__Pyx_PyString_Equals(__pyx_t_9, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1413, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (__pyx_t_22) { /* … */ goto __pyx_L19; }
+1414: pts = np.array([ptsrz[0,:]*Ccos(phiMinMax[0]+Dphi),
__Pyx_GetModuleGlobalName(__pyx_t_31, __pyx_n_s_np); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_31, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __pyx_t_31 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__36); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __pyx_t_50 = 0; __pyx_t_3 = PyFloat_FromDouble(cos(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_50)) ))) + __pyx_v_Dphi))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_41 = PyNumber_Multiply(__pyx_t_31, __pyx_t_3); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_41); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_41); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_31); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_31); __pyx_t_41 = 0; __pyx_t_8 = 0; __pyx_t_31 = 0; __pyx_t_31 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_31 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_31)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_9 = (__pyx_t_31) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_31, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1414, __pyx_L1_error) __pyx_t_48 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error) } __pyx_t_48 = 0; __pyx_v_pts = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
+1415: ptsrz[0,:]*Csin(phiMinMax[0]+Dphi),
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__36); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_51 = 0; __pyx_t_31 = PyFloat_FromDouble(sin(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_51)) ))) + __pyx_v_Dphi))); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_31); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
+1416: ptsrz[1,:]])
__pyx_t_31 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__42); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1416, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31);
1417: else:
+1418: pts = np.array([ptsrz[0,:],
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__36); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__pyx_t_41 = PyList_New(3); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_41);
__Pyx_GIVEREF(__pyx_t_2);
PyList_SET_ITEM(__pyx_t_41, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_31);
PyList_SET_ITEM(__pyx_t_41, 1, __pyx_t_31);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_41, 2, __pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_31 = 0;
__pyx_t_1 = 0;
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_3, function);
}
}
__pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_41) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_41);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1418, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1418, __pyx_L1_error)
__pyx_t_48 = ((PyArrayObject *)__pyx_t_9);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_32 < 0)) {
PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46);
}
__pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0;
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1418, __pyx_L1_error)
}
__pyx_t_48 = 0;
__pyx_v_pts = ((PyArrayObject *)__pyx_t_9);
__pyx_t_9 = 0;
}
__pyx_L19:;
+1419: ptsrz[1,:],
__pyx_t_31 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__42); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31);
+1420: (phiMinMax[0]+Dphi)*np.ones((indin.sum(),))])
__pyx_t_52 = 0;
__pyx_t_8 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_52)) ))) + __pyx_v_Dphi)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_33);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0;
if (unlikely(!__pyx_v_indin)) { __Pyx_RaiseUnboundLocalError("indin"); __PYX_ERR(0, 1420, __pyx_L1_error) }
__pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_53);
__pyx_t_54 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_53))) {
__pyx_t_54 = PyMethod_GET_SELF(__pyx_t_53);
if (likely(__pyx_t_54)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_53);
__Pyx_INCREF(__pyx_t_54);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_53, function);
}
}
__pyx_t_33 = (__pyx_t_54) ? __Pyx_PyObject_CallOneArg(__pyx_t_53, __pyx_t_54) : __Pyx_PyObject_CallNoArg(__pyx_t_53);
__Pyx_XDECREF(__pyx_t_54); __pyx_t_54 = 0;
if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_33);
__Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
__pyx_t_53 = PyTuple_New(1); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_53);
__Pyx_GIVEREF(__pyx_t_33);
PyTuple_SET_ITEM(__pyx_t_53, 0, __pyx_t_33);
__pyx_t_33 = 0;
__pyx_t_33 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_33 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_33)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_33);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_41 = (__pyx_t_33) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_33, __pyx_t_53) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_53);
__Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0;
__Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_41);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_t_41); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1420, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
+1421: LPts.append( pts )
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LPts, ((PyObject *)__pyx_v_pts)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1421, __pyx_L1_error)
+1422: Lind.append( iindF )
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_Lind, ((PyObject *)__pyx_v_iindF)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1422, __pyx_L1_error)
+1423: LdS.append( dsF )
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LdS, ((PyObject *)__pyx_v_dsF)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1423, __pyx_L1_error)
1424:
1425: # Main body
+1426: PtsM, dSM,\
if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_31) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_31, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_53) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_53, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) if (!(likely(((__pyx_t_54) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_54, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1426, __pyx_L1_error) __pyx_t_48 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsM, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_PtsM.diminfo[0].strides = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsM.diminfo[0].shape = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsM.diminfo[1].strides = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsM.diminfo[1].shape = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1426, __pyx_L1_error) } __pyx_t_48 = 0; __pyx_v_PtsM = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_31); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer, (PyObject*)__pyx_v_dSM, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_dSM.diminfo[0].strides = __pyx_pybuffernd_dSM.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dSM.diminfo[0].shape = __pyx_pybuffernd_dSM.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1426, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dSM = ((PyArrayObject *)__pyx_t_31); __pyx_t_31 = 0; __pyx_t_47 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indM.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indM.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indM.rcbuffer->pybuffer, (PyObject*)__pyx_v_indM, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_indM.diminfo[0].strides = __pyx_pybuffernd_indM.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indM.diminfo[0].shape = __pyx_pybuffernd_indM.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1427, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_indM = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_t_47 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1427, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1428, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1428, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_8); __pyx_t_8 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_53); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_v_dRPhir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_dRPhir.diminfo[0].strides = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dRPhir.diminfo[0].shape = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1429, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dRPhir = ((PyArrayObject *)__pyx_t_53); __pyx_t_53 = 0; __pyx_v_nRPhi0 = __pyx_t_33; __pyx_t_33 = 0; __pyx_t_48 = ((PyArrayObject *)__pyx_t_54); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1430, __pyx_L1_error) } __pyx_t_48 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_54); __pyx_t_54 = 0;
1427: indM, NL,\
1428: dLr, Rref,\
1429: dRPhir, nRPhi0,\
+1430: VPbis = _Ves_Smesh_Tor_SubFromD_cython(dL, dRPhi, VPoly,
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_Ves_Smesh_Tor_SubFromD_cython); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_41 = PyFloat_FromDouble(__pyx_v_dRPhi); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_31 = PyTuple_New(3); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_41); PyTuple_SET_ITEM(__pyx_t_31, 1, __pyx_t_41); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_31, 2, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_41 = 0; __pyx_t_1 = 0; /* … */ __pyx_t_41 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_31, __pyx_t_1); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_41))) || (PyList_CheckExact(__pyx_t_41))) { PyObject* sequence = __pyx_t_41; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 9)) { if (size > 9) __Pyx_RaiseTooManyValuesError(9); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1426, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_31 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 5); __pyx_t_53 = PyTuple_GET_ITEM(sequence, 6); __pyx_t_33 = PyTuple_GET_ITEM(sequence, 7); __pyx_t_54 = PyTuple_GET_ITEM(sequence, 8); } else { __pyx_t_1 = PyList_GET_ITEM(sequence, 0); __pyx_t_31 = PyList_GET_ITEM(sequence, 1); __pyx_t_9 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); __pyx_t_2 = PyList_GET_ITEM(sequence, 4); __pyx_t_8 = PyList_GET_ITEM(sequence, 5); __pyx_t_53 = PyList_GET_ITEM(sequence, 6); __pyx_t_33 = PyList_GET_ITEM(sequence, 7); __pyx_t_54 = PyList_GET_ITEM(sequence, 8); } __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_31); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_53); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(__pyx_t_54); #else { Py_ssize_t i; PyObject** temps[9] = {&__pyx_t_1,&__pyx_t_31,&__pyx_t_9,&__pyx_t_3,&__pyx_t_2,&__pyx_t_8,&__pyx_t_53,&__pyx_t_33,&__pyx_t_54}; for (i=0; i < 9; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1426, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; } else { Py_ssize_t index = -1; PyObject** temps[9] = {&__pyx_t_1,&__pyx_t_31,&__pyx_t_9,&__pyx_t_3,&__pyx_t_2,&__pyx_t_8,&__pyx_t_53,&__pyx_t_33,&__pyx_t_54}; __pyx_t_56 = PyObject_GetIter(__pyx_t_41); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 1426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_56); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_34 = Py_TYPE(__pyx_t_56)->tp_iternext; for (index=0; index < 9; index++) { PyObject* item = __pyx_t_34(__pyx_t_56); if (unlikely(!item)) goto __pyx_L20_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_34(__pyx_t_56), 9) < 0) __PYX_ERR(0, 1426, __pyx_L1_error) __pyx_t_34 = NULL; __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0; goto __pyx_L21_unpacking_done; __pyx_L20_unpacking_failed:; __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0; __pyx_t_34 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1426, __pyx_L1_error) __pyx_L21_unpacking_done:; }
+1431: DR=DR, DZ=DZ,
__pyx_t_1 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1431, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_DR, __pyx_v_DR) < 0) __PYX_ERR(0, 1431, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_DZ, __pyx_v_DZ) < 0) __PYX_ERR(0, 1431, __pyx_L1_error)
+1432: DPhi=[DPhi0,DPhi1],
__pyx_t_41 = PyList_New(2); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_INCREF(__pyx_v_DPhi0); __Pyx_GIVEREF(__pyx_v_DPhi0); PyList_SET_ITEM(__pyx_t_41, 0, __pyx_v_DPhi0); __Pyx_INCREF(__pyx_v_DPhi1); __Pyx_GIVEREF(__pyx_v_DPhi1); PyList_SET_ITEM(__pyx_t_41, 1, __pyx_v_DPhi1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_DPhi, __pyx_t_41) < 0) __PYX_ERR(0, 1431, __pyx_L1_error) __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
+1433: DIn=DIn, VIn=VIn,
__pyx_t_41 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_DIn, __pyx_t_41) < 0) __PYX_ERR(0, 1431, __pyx_L1_error) __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_VIn, __pyx_v_VIn) < 0) __PYX_ERR(0, 1431, __pyx_L1_error)
+1434: PhiMinMax=phiMinMax,
__pyx_t_41 = __pyx_memoryview_fromslice(__pyx_v_phiMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1434, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_PhiMinMax, __pyx_t_41) < 0) __PYX_ERR(0, 1431, __pyx_L1_error) __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
+1435: Out=Out, margin=margin)
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_Out, __pyx_v_Out) < 0) __PYX_ERR(0, 1431, __pyx_L1_error) __pyx_t_41 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_margin, __pyx_t_41) < 0) __PYX_ERR(0, 1431, __pyx_L1_error) __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
1436:
+1437: if PtsM.shape[1]>=1:
__pyx_t_22 = (((__pyx_v_PtsM->dimensions[1]) >= 1) != 0);
if (__pyx_t_22) {
/* … */
}
+1438: if PtsM.shape[1]==1:
__pyx_t_22 = (((__pyx_v_PtsM->dimensions[1]) == 1) != 0);
if (__pyx_t_22) {
/* … */
goto __pyx_L23;
}
+1439: LPts.append(PtsM.reshape((3,1)))
__pyx_t_54 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_PtsM), __pyx_n_s_reshape); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __pyx_t_33 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_54))) { __pyx_t_33 = PyMethod_GET_SELF(__pyx_t_54); if (likely(__pyx_t_33)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_54); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_54, function); } } __pyx_t_41 = (__pyx_t_33) ? __Pyx_PyObject_Call2Args(__pyx_t_54, __pyx_t_33, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_54, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; __pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_41); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1439, __pyx_L1_error) __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
1440: else:
+1441: LPts.append(PtsM)
/*else*/ {
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LPts, ((PyObject *)__pyx_v_PtsM)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1441, __pyx_L1_error)
}
__pyx_L23:;
+1442: Lind.append( indM + NR0*NZ0 )
__pyx_t_41 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_54 = PyNumber_Add(((PyObject *)__pyx_v_indM), __pyx_t_41); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_55 = __Pyx_PyList_Append(__pyx_v_Lind, __pyx_t_54); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1442, __pyx_L1_error) __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
+1443: LdS.append( dSM )
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LdS, ((PyObject *)__pyx_v_dSM)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1443, __pyx_L1_error)
1444:
1445: # Second face
+1446: if Faces[1]:
__pyx_t_54 = __Pyx_GetItemInt(__pyx_v_Faces, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_54); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1446, __pyx_L1_error) __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; if (__pyx_t_22) { /* … */ }
+1447: if Out.lower()=='(x,y,z)':
__pyx_t_54 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __pyx_t_22 = (__Pyx_PyString_Equals(__pyx_t_54, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; if (__pyx_t_22) { /* … */ goto __pyx_L25; }
+1448: pts = np.array([ptsrz[0,:]*Ccos(phiMinMax[1]-Dphi),
__Pyx_GetModuleGlobalName(__pyx_t_41, __pyx_n_s_np); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_t_41, __pyx_n_s_array); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_41 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__36); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_57 = 1; __pyx_t_53 = PyFloat_FromDouble(cos(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_57)) ))) - __pyx_v_Dphi))); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __pyx_t_8 = PyNumber_Multiply(__pyx_t_41, __pyx_t_53); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; /* … */ __pyx_t_53 = PyList_New(3); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_53, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_53, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_41); PyList_SET_ITEM(__pyx_t_53, 2, __pyx_t_41); __pyx_t_8 = 0; __pyx_t_2 = 0; __pyx_t_41 = 0; __pyx_t_41 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_33))) { __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_33); if (likely(__pyx_t_41)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_33); __Pyx_INCREF(__pyx_t_41); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_33, function); } } __pyx_t_54 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_33, __pyx_t_41, __pyx_t_53) : __Pyx_PyObject_CallOneArg(__pyx_t_33, __pyx_t_53); __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0; __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1448, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if (!(likely(((__pyx_t_54) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_54, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1448, __pyx_L1_error) __pyx_t_48 = ((PyArrayObject *)__pyx_t_54); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1448, __pyx_L1_error) } __pyx_t_48 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_54)); __pyx_t_54 = 0;
+1449: ptsrz[0,:]*Csin(phiMinMax[1]-Dphi),
__pyx_t_53 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__36); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __pyx_t_58 = 1; __pyx_t_41 = PyFloat_FromDouble(sin(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_58)) ))) - __pyx_v_Dphi))); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_2 = PyNumber_Multiply(__pyx_t_53, __pyx_t_41); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0;
+1450: ptsrz[1,:]])
__pyx_t_41 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__42); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1450, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41);
1451: else:
+1452: pts = np.array([ptsrz[0,:],
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_33);
__pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_array); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_53);
__Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0;
__pyx_t_33 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__36); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_33);
/* … */
__pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GIVEREF(__pyx_t_33);
PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_33);
__Pyx_GIVEREF(__pyx_t_41);
PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_41);
__Pyx_GIVEREF(__pyx_t_9);
PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_9);
__pyx_t_33 = 0;
__pyx_t_41 = 0;
__pyx_t_9 = 0;
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_53))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_53);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_53);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_53, function);
}
}
__pyx_t_54 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_53, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_53, __pyx_t_8);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1452, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_54);
__Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
if (!(likely(((__pyx_t_54) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_54, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1452, __pyx_L1_error)
__pyx_t_48 = ((PyArrayObject *)__pyx_t_54);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_32 < 0)) {
PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46);
}
__pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0;
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1452, __pyx_L1_error)
}
__pyx_t_48 = 0;
__Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_54));
__pyx_t_54 = 0;
}
__pyx_L25:;
+1453: ptsrz[1,:],
__pyx_t_41 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ptsrz), __pyx_tuple__42); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41);
+1454: (phiMinMax[1]-Dphi)*np.ones((indin.sum(),))])
__pyx_t_59 = 1;
__pyx_t_2 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_59)) ))) - __pyx_v_Dphi)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_v_indin)) { __Pyx_RaiseUnboundLocalError("indin"); __PYX_ERR(0, 1454, __pyx_L1_error) }
__pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_31);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_31))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_31);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_31, function);
}
}
__pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_31, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_31);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
__pyx_t_31 = PyTuple_New(1); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_31);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_31, 0, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
}
}
__pyx_t_8 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_3, __pyx_t_31) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_31);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = PyNumber_Multiply(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1454, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1455: LPts.append( pts )
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LPts, ((PyObject *)__pyx_v_pts)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1455, __pyx_L1_error)
+1456: Lind.append( iindF + NR0*NZ0 + nRPhi0 )
__pyx_t_54 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __pyx_t_53 = PyNumber_Add(((PyObject *)__pyx_v_iindF), __pyx_t_54); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; __pyx_t_54 = PyNumber_Add(__pyx_t_53, __pyx_v_nRPhi0); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; __pyx_t_55 = __Pyx_PyList_Append(__pyx_v_Lind, __pyx_t_54); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1456, __pyx_L1_error) __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
+1457: LdS.append( dsF )
__pyx_t_55 = __Pyx_PyList_Append(__pyx_v_LdS, ((PyObject *)__pyx_v_dsF)); if (unlikely(__pyx_t_55 == ((int)-1))) __PYX_ERR(0, 1457, __pyx_L1_error)
1458:
1459: # Aggregate
+1460: if len(LPts)==1:
__pyx_t_36 = PyList_GET_SIZE(__pyx_v_LPts); if (unlikely(__pyx_t_36 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1460, __pyx_L1_error) __pyx_t_22 = ((__pyx_t_36 == 1) != 0); if (__pyx_t_22) { /* … */ goto __pyx_L26; }
+1461: Pts = LPts[0]
if (!(likely(((PyList_GET_ITEM(__pyx_v_LPts, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_LPts, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1461, __pyx_L1_error) __pyx_t_54 = PyList_GET_ITEM(__pyx_v_LPts, 0); __Pyx_INCREF(__pyx_t_54); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_54), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1461, __pyx_L1_error) } __pyx_v_Pts = ((PyArrayObject *)__pyx_t_54); __pyx_t_54 = 0;
+1462: ind = Lind[0]
if (!(likely(((PyList_GET_ITEM(__pyx_v_Lind, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_Lind, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1462, __pyx_L1_error) __pyx_t_54 = PyList_GET_ITEM(__pyx_v_Lind, 0); __Pyx_INCREF(__pyx_t_54); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_54), &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1462, __pyx_L1_error) } __pyx_v_ind = ((PyArrayObject *)__pyx_t_54); __pyx_t_54 = 0;
+1463: dS = LdS[0]
if (!(likely(((PyList_GET_ITEM(__pyx_v_LdS, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_LdS, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1463, __pyx_L1_error) __pyx_t_54 = PyList_GET_ITEM(__pyx_v_LdS, 0); __Pyx_INCREF(__pyx_t_54); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_54), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1463, __pyx_L1_error) } __pyx_v_dS = ((PyArrayObject *)__pyx_t_54); __pyx_t_54 = 0;
1464: else:
+1465: Pts = np.concatenate(tuple(LPts),axis=1)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_54, __pyx_n_s_np); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_54);
__pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_54, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_53);
__Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
__pyx_t_54 = PyList_AsTuple(__pyx_v_LPts); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_54);
__pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GIVEREF(__pyx_t_54);
PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_54);
__pyx_t_54 = 0;
__pyx_t_54 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_54);
if (PyDict_SetItem(__pyx_t_54, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 1465, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_53, __pyx_t_8, __pyx_t_54); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1465, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1465, __pyx_L1_error)
__pyx_t_48 = ((PyArrayObject *)__pyx_t_9);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_32 < 0)) {
PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46);
}
__pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0;
}
__pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1465, __pyx_L1_error)
}
__pyx_t_48 = 0;
__pyx_v_Pts = ((PyArrayObject *)__pyx_t_9);
__pyx_t_9 = 0;
+1466: ind = np.concatenate(tuple(Lind)).astype(int)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyList_AsTuple(__pyx_v_Lind); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_41 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_53))) { __pyx_t_41 = PyMethod_GET_SELF(__pyx_t_53); if (likely(__pyx_t_41)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_53); __Pyx_INCREF(__pyx_t_41); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_53, function); } } __pyx_t_54 = (__pyx_t_41) ? __Pyx_PyObject_Call2Args(__pyx_t_53, __pyx_t_41, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_53, __pyx_t_8); __Pyx_XDECREF(__pyx_t_41); __pyx_t_41 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_54, __pyx_n_s_astype); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; __pyx_t_54 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_53))) { __pyx_t_54 = PyMethod_GET_SELF(__pyx_t_53); if (likely(__pyx_t_54)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_53); __Pyx_INCREF(__pyx_t_54); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_53, function); } } __pyx_t_9 = (__pyx_t_54) ? __Pyx_PyObject_Call2Args(__pyx_t_53, __pyx_t_54, ((PyObject *)(&PyInt_Type))) : __Pyx_PyObject_CallOneArg(__pyx_t_53, ((PyObject *)(&PyInt_Type))); __Pyx_XDECREF(__pyx_t_54); __pyx_t_54 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1466, __pyx_L1_error) __pyx_t_47 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1466, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
+1467: dS = np.concatenate(tuple(LdS))
__Pyx_GetModuleGlobalName(__pyx_t_53, __pyx_n_s_np); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_53, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; __pyx_t_53 = PyList_AsTuple(__pyx_v_LdS); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_54))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_54); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_54); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_54, function); } } __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_54, __pyx_t_8, __pyx_t_53) : __Pyx_PyObject_CallOneArg(__pyx_t_54, __pyx_t_53); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1467, __pyx_L1_error) __pyx_t_42 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1467, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; } __pyx_L26:;
1468:
1469: else:
+1470: Pts, dS, ind, NL, Rref = np.ones((3,0)), np.ones((0,)),\
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_54, __pyx_n_s_np); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_54);
__pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_54, __pyx_n_s_ones); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_53);
__Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
__pyx_t_54 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_53))) {
__pyx_t_54 = PyMethod_GET_SELF(__pyx_t_53);
if (likely(__pyx_t_54)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_53);
__Pyx_INCREF(__pyx_t_54);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_53, function);
}
}
__pyx_t_9 = (__pyx_t_54) ? __Pyx_PyObject_Call2Args(__pyx_t_53, __pyx_t_54, __pyx_tuple__50) : __Pyx_PyObject_CallOneArg(__pyx_t_53, __pyx_tuple__50);
__Pyx_XDECREF(__pyx_t_54); __pyx_t_54 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GetModuleGlobalName(__pyx_t_54, __pyx_n_s_np); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_54);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_54, __pyx_n_s_ones); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
__pyx_t_54 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_54 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_54)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_54);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
}
}
__pyx_t_53 = (__pyx_t_54) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_54, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_tuple__51);
__Pyx_XDECREF(__pyx_t_54); __pyx_t_54 = 0;
if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1470, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_53);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (!(likely(((__pyx_t_53) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_53, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1470, __pyx_L1_error)
+1471: np.ones((0,),dtype=int), np.ones((0,),dtype=int),\
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ones); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1471, __pyx_L1_error) __pyx_t_41 = __Pyx_PyObject_Call(__pyx_t_54, __pyx_tuple__54, __pyx_t_8); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_41) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_41, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ones); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1471, __pyx_L1_error) __pyx_t_33 = __Pyx_PyObject_Call(__pyx_t_54, __pyx_tuple__54, __pyx_t_8); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_33) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_33, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1471, __pyx_L1_error) /* … */ __pyx_tuple__54 = PyTuple_Pack(1, __pyx_tuple__51); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 1471, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__54); __Pyx_GIVEREF(__pyx_tuple__54);
+1472: np.nan*np.ones((VPoly.shape[1]-1,))
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_nan); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_54); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ones); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyInt_FromSsize_t(((__pyx_v_VPoly.shape[1]) - 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_31))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); } } __pyx_t_8 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_31, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_31, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __pyx_t_31 = PyNumber_Multiply(__pyx_t_54, __pyx_t_8); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_31) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_31, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1472, __pyx_L1_error) __pyx_t_48 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1470, __pyx_L1_error) } __pyx_t_48 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_53); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1470, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_53); __pyx_t_53 = 0; __pyx_t_47 = ((PyArrayObject *)__pyx_t_41); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1470, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_41); __pyx_t_41 = 0; __pyx_t_47 = ((PyArrayObject *)__pyx_t_33); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_47, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1470, __pyx_L1_error) } __pyx_t_47 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_33); __pyx_t_33 = 0; __pyx_t_42 = ((PyArrayObject *)__pyx_t_31); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1470, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_31); __pyx_t_31 = 0;
+1473: dLr, dR0r, dZ0r, dRPhir, VPbis = np.ones((0,)), 0., 0.,\
__Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_ones); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __pyx_t_33 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_41))) { __pyx_t_33 = PyMethod_GET_SELF(__pyx_t_41); if (likely(__pyx_t_33)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_41); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_41, function); } } __pyx_t_31 = (__pyx_t_33) ? __Pyx_PyObject_Call2Args(__pyx_t_41, __pyx_t_33, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_41, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; if (!(likely(((__pyx_t_31) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_31, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1473, __pyx_L1_error) __pyx_t_26 = 0.; __pyx_t_27 = 0.;
+1474: np.ones((0,)), np.asarray(VPoly)
__Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_ones); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __pyx_t_33 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_53))) { __pyx_t_33 = PyMethod_GET_SELF(__pyx_t_53); if (likely(__pyx_t_33)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_53); __Pyx_INCREF(__pyx_t_33); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_53, function); } } __pyx_t_41 = (__pyx_t_33) ? __Pyx_PyObject_Call2Args(__pyx_t_53, __pyx_t_33, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_53, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0; if (!(likely(((__pyx_t_41) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_41, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_33, __pyx_n_s_np); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_33, __pyx_n_s_asarray); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; __pyx_t_33 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_33); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_53 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_8, __pyx_t_33) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_33); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_33); __pyx_t_33 = 0; if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_53) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_53, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1474, __pyx_L1_error) __pyx_t_42 = ((PyArrayObject *)__pyx_t_31); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1473, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_31); __pyx_t_31 = 0; __pyx_v_dR0r = __pyx_t_26; __pyx_v_dZ0r = __pyx_t_27; __pyx_t_42 = ((PyArrayObject *)__pyx_t_41); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_t_42, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_46, &__pyx_t_45, &__pyx_t_44); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_v_dRPhir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_46); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_44); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_46, __pyx_t_45, __pyx_t_44); } __pyx_t_46 = __pyx_t_45 = __pyx_t_44 = 0; } __pyx_pybuffernd_dRPhir.diminfo[0].strides = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dRPhir.diminfo[0].shape = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1473, __pyx_L1_error) } __pyx_t_42 = 0; __pyx_v_dRPhir = ((PyArrayObject *)__pyx_t_41); __pyx_t_41 = 0; __pyx_t_48 = ((PyArrayObject *)__pyx_t_53); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_32 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_48, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_32 < 0)) { PyErr_Fetch(&__pyx_t_44, &__pyx_t_45, &__pyx_t_46); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_44); Py_XDECREF(__pyx_t_45); Py_XDECREF(__pyx_t_46); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_44, __pyx_t_45, __pyx_t_46); } __pyx_t_44 = __pyx_t_45 = __pyx_t_46 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_32 < 0)) __PYX_ERR(0, 1473, __pyx_L1_error) } __pyx_t_48 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_53); __pyx_t_53 = 0; } __pyx_L7:;
1475:
+1476: return Pts, dS, ind, NL, dLr, Rref, dR0r, dZ0r, dRPhir, VPbis
__Pyx_XDECREF(__pyx_r); __pyx_t_53 = PyFloat_FromDouble(__pyx_v_dR0r); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 1476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_53); __pyx_t_41 = PyFloat_FromDouble(__pyx_v_dZ0r); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 1476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __pyx_t_31 = PyTuple_New(10); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 1476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_31, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_31, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind)); PyTuple_SET_ITEM(__pyx_t_31, 2, ((PyObject *)__pyx_v_ind)); __Pyx_INCREF(((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_NL)); PyTuple_SET_ITEM(__pyx_t_31, 3, ((PyObject *)__pyx_v_NL)); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_31, 4, ((PyObject *)__pyx_v_dLr)); __Pyx_INCREF(((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Rref)); PyTuple_SET_ITEM(__pyx_t_31, 5, ((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(__pyx_t_53); PyTuple_SET_ITEM(__pyx_t_31, 6, __pyx_t_53); __Pyx_GIVEREF(__pyx_t_41); PyTuple_SET_ITEM(__pyx_t_31, 7, __pyx_t_41); __Pyx_INCREF(((PyObject *)__pyx_v_dRPhir)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dRPhir)); PyTuple_SET_ITEM(__pyx_t_31, 8, ((PyObject *)__pyx_v_dRPhir)); __Pyx_INCREF(((PyObject *)__pyx_v_VPbis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_VPbis)); PyTuple_SET_ITEM(__pyx_t_31, 9, ((PyObject *)__pyx_v_VPbis)); __pyx_t_53 = 0; __pyx_t_41 = 0; __pyx_r = __pyx_t_31; __pyx_t_31 = 0; goto __pyx_L0;
1477:
1478:
1479:
1480: @cython.cdivision(True)
1481: @cython.wraparound(False)
1482: @cython.boundscheck(False)
+1483: def _Ves_Smesh_TorStruct_SubFromInd_cython(double[::1] PhiMinMax, double dL,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_39_Ves_Smesh_TorStruct_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_38_Ves_Smesh_TorStruct_SubFromInd_cython[] = " Return the desired surfacic submesh indicated by the limits (DR,DZ,DPhi)\n for the desired resolution (dR,dZ,dRphi) ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_39_Ves_Smesh_TorStruct_SubFromInd_cython = {"_Ves_Smesh_TorStruct_SubFromInd_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_39_Ves_Smesh_TorStruct_SubFromInd_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_38_Ves_Smesh_TorStruct_SubFromInd_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_39_Ves_Smesh_TorStruct_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_PhiMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dL;
double __pyx_v_dRPhi;
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_ind = 0;
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_Out = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_TorStruct_SubFromInd_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_PhiMinMax,&__pyx_n_s_dL,&__pyx_n_s_dRPhi,&__pyx_n_s_VPoly,&__pyx_n_s_ind,&__pyx_n_s_DIn,&__pyx_n_s_VIn,&__pyx_n_s_Out,&__pyx_n_s_margin,0};
PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_38_Ves_Smesh_TorStruct_SubFromInd_cython(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_PhiMinMax, double __pyx_v_dL, double __pyx_v_dRPhi, __Pyx_memviewslice __pyx_v_VPoly, PyArrayObject *__pyx_v_ind, double __pyx_v_DIn, PyObject *__pyx_v_VIn, PyObject *__pyx_v_Out, double __pyx_v_margin) {
double __pyx_v_Dphi;
double __pyx_v_dR0r;
double __pyx_v_dZ0r;
int __pyx_v_NR0;
int __pyx_v_NZ0;
__Pyx_memviewslice __pyx_v_phiMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_R0 = 0;
PyArrayObject *__pyx_v_Z0 = 0;
PyArrayObject *__pyx_v_dSM = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_dRPhir = 0;
PyArrayObject *__pyx_v_dS = 0;
CYTHON_UNUSED PyArrayObject *__pyx_v_bla = 0;
PyArrayObject *__pyx_v_indR0 = 0;
PyArrayObject *__pyx_v_indZ0 = 0;
CYTHON_UNUSED PyArrayObject *__pyx_v_indM = 0;
PyArrayObject *__pyx_v_NL = 0;
PyArrayObject *__pyx_v_pts = 0;
PyArrayObject *__pyx_v_PtsM = 0;
PyArrayObject *__pyx_v_VPbis = 0;
PyArrayObject *__pyx_v_Pts = 0;
PyObject *__pyx_v_LPts = 0;
PyObject *__pyx_v_LdS = 0;
CYTHON_UNUSED PyObject *__pyx_v_Lind = 0;
CYTHON_UNUSED PyObject *__pyx_v_nRPhi0 = NULL;
PyObject *__pyx_v_ii = NULL;
Py_ssize_t __pyx_v_nii;
__Pyx_LocalBuf_ND __pyx_pybuffernd_NL;
__Pyx_Buffer __pyx_pybuffer_NL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsM;
__Pyx_Buffer __pyx_pybuffer_PtsM;
__Pyx_LocalBuf_ND __pyx_pybuffernd_R0;
__Pyx_Buffer __pyx_pybuffer_R0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPbis;
__Pyx_Buffer __pyx_pybuffer_VPbis;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Z0;
__Pyx_Buffer __pyx_pybuffer_Z0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_bla;
__Pyx_Buffer __pyx_pybuffer_bla;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dRPhir;
__Pyx_Buffer __pyx_pybuffer_dRPhir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dSM;
__Pyx_Buffer __pyx_pybuffer_dSM;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indM;
__Pyx_Buffer __pyx_pybuffer_indM;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indR0;
__Pyx_Buffer __pyx_pybuffer_indR0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indZ0;
__Pyx_Buffer __pyx_pybuffer_indZ0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_pts;
__Pyx_Buffer __pyx_pybuffer_pts;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_TorStruct_SubFromInd_cython", 0);
__pyx_pybuffer_R0.pybuffer.buf = NULL;
__pyx_pybuffer_R0.refcount = 0;
__pyx_pybuffernd_R0.data = NULL;
__pyx_pybuffernd_R0.rcbuffer = &__pyx_pybuffer_R0;
__pyx_pybuffer_Z0.pybuffer.buf = NULL;
__pyx_pybuffer_Z0.refcount = 0;
__pyx_pybuffernd_Z0.data = NULL;
__pyx_pybuffernd_Z0.rcbuffer = &__pyx_pybuffer_Z0;
__pyx_pybuffer_dSM.pybuffer.buf = NULL;
__pyx_pybuffer_dSM.refcount = 0;
__pyx_pybuffernd_dSM.data = NULL;
__pyx_pybuffernd_dSM.rcbuffer = &__pyx_pybuffer_dSM;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_dRPhir.pybuffer.buf = NULL;
__pyx_pybuffer_dRPhir.refcount = 0;
__pyx_pybuffernd_dRPhir.data = NULL;
__pyx_pybuffernd_dRPhir.rcbuffer = &__pyx_pybuffer_dRPhir;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_bla.pybuffer.buf = NULL;
__pyx_pybuffer_bla.refcount = 0;
__pyx_pybuffernd_bla.data = NULL;
__pyx_pybuffernd_bla.rcbuffer = &__pyx_pybuffer_bla;
__pyx_pybuffer_indR0.pybuffer.buf = NULL;
__pyx_pybuffer_indR0.refcount = 0;
__pyx_pybuffernd_indR0.data = NULL;
__pyx_pybuffernd_indR0.rcbuffer = &__pyx_pybuffer_indR0;
__pyx_pybuffer_indZ0.pybuffer.buf = NULL;
__pyx_pybuffer_indZ0.refcount = 0;
__pyx_pybuffernd_indZ0.data = NULL;
__pyx_pybuffernd_indZ0.rcbuffer = &__pyx_pybuffer_indZ0;
__pyx_pybuffer_indM.pybuffer.buf = NULL;
__pyx_pybuffer_indM.refcount = 0;
__pyx_pybuffernd_indM.data = NULL;
__pyx_pybuffernd_indM.rcbuffer = &__pyx_pybuffer_indM;
__pyx_pybuffer_NL.pybuffer.buf = NULL;
__pyx_pybuffer_NL.refcount = 0;
__pyx_pybuffernd_NL.data = NULL;
__pyx_pybuffernd_NL.rcbuffer = &__pyx_pybuffer_NL;
__pyx_pybuffer_pts.pybuffer.buf = NULL;
__pyx_pybuffer_pts.refcount = 0;
__pyx_pybuffernd_pts.data = NULL;
__pyx_pybuffernd_pts.rcbuffer = &__pyx_pybuffer_pts;
__pyx_pybuffer_PtsM.pybuffer.buf = NULL;
__pyx_pybuffer_PtsM.refcount = 0;
__pyx_pybuffernd_PtsM.data = NULL;
__pyx_pybuffernd_PtsM.rcbuffer = &__pyx_pybuffer_PtsM;
__pyx_pybuffer_VPbis.pybuffer.buf = NULL;
__pyx_pybuffer_VPbis.refcount = 0;
__pyx_pybuffernd_VPbis.data = NULL;
__pyx_pybuffernd_VPbis.rcbuffer = &__pyx_pybuffer_VPbis;
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1483, __pyx_L1_error)
}
__pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_XDECREF(__pyx_t_26);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bla.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_TorStruct_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bla.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indM.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_L2:;
__PYX_XDEC_MEMVIEW(&__pyx_v_phiMinMax, 1);
__Pyx_XDECREF((PyObject *)__pyx_v_R0);
__Pyx_XDECREF((PyObject *)__pyx_v_Z0);
__Pyx_XDECREF((PyObject *)__pyx_v_dSM);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_dRPhir);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_bla);
__Pyx_XDECREF((PyObject *)__pyx_v_indR0);
__Pyx_XDECREF((PyObject *)__pyx_v_indZ0);
__Pyx_XDECREF((PyObject *)__pyx_v_indM);
__Pyx_XDECREF((PyObject *)__pyx_v_NL);
__Pyx_XDECREF((PyObject *)__pyx_v_pts);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsM);
__Pyx_XDECREF((PyObject *)__pyx_v_VPbis);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF(__pyx_v_LPts);
__Pyx_XDECREF(__pyx_v_LdS);
__Pyx_XDECREF(__pyx_v_Lind);
__Pyx_XDECREF(__pyx_v_nRPhi0);
__Pyx_XDECREF(__pyx_v_ii);
__PYX_XDEC_MEMVIEW(&__pyx_v_PhiMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__196 = PyTuple_Pack(44, __pyx_n_s_PhiMinMax, __pyx_n_s_dL, __pyx_n_s_dRPhi, __pyx_n_s_VPoly, __pyx_n_s_ind, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_Out, __pyx_n_s_margin, __pyx_n_s_Dphi, __pyx_n_s_dR0r, __pyx_n_s_dZ0r, __pyx_n_s_NR0, __pyx_n_s_NZ0, __pyx_n_s_R0n, __pyx_n_s_Z0n, __pyx_n_s_NRPhi0, __pyx_n_s_phiMinMax, __pyx_n_s_R0, __pyx_n_s_Z0, __pyx_n_s_dsF, __pyx_n_s_dSM, __pyx_n_s_dLr, __pyx_n_s_Rref, __pyx_n_s_dRPhir, __pyx_n_s_dS, __pyx_n_s_bla, __pyx_n_s_indR0, __pyx_n_s_indZ0, __pyx_n_s_iind, __pyx_n_s_iindF, __pyx_n_s_indM, __pyx_n_s_NL, __pyx_n_s_ptsrz, __pyx_n_s_pts, __pyx_n_s_PtsM, __pyx_n_s_VPbis, __pyx_n_s_Pts, __pyx_n_s_LPts, __pyx_n_s_LdS, __pyx_n_s_Lind, __pyx_n_s_nRPhi0, __pyx_n_s_ii, __pyx_n_s_nii); if (unlikely(!__pyx_tuple__196)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__196);
__Pyx_GIVEREF(__pyx_tuple__196);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_39_Ves_Smesh_TorStruct_SubFromInd_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_TorStruct_SubFromInd, __pyx_t_1) < 0) __PYX_ERR(0, 1483, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(9, 0, 44, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__196, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_TorStruct_SubFromInd, 1483, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(0, 1483, __pyx_L1_error)
1484: double dRPhi, double[:,::1] VPoly,
1485: np.ndarray[long,ndim=1] ind,
+1486: double DIn=0., VIn=None,
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject*)__pyx_kp_s_X_Y_Z);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_PhiMinMax)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromInd_cython", 0, 5, 9, 1); __PYX_ERR(0, 1483, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dRPhi)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromInd_cython", 0, 5, 9, 2); __PYX_ERR(0, 1483, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromInd_cython", 0, 5, 9, 3); __PYX_ERR(0, 1483, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromInd_cython", 0, 5, 9, 4); __PYX_ERR(0, 1483, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Out);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[8] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_TorStruct_SubFromInd_cython") < 0)) __PYX_ERR(0, 1483, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_PhiMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_PhiMinMax.memview)) __PYX_ERR(0, 1483, __pyx_L3_error)
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1483, __pyx_L3_error)
__pyx_v_dRPhi = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dRPhi == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1484, __pyx_L3_error)
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 1484, __pyx_L3_error)
__pyx_v_ind = ((PyArrayObject *)values[4]);
if (values[5]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1486, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[6];
__pyx_v_Out = ((PyObject*)values[7]);
if (values[8]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1488, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__55;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_TorStruct_SubFromInd_cython", 0, 5, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1483, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_TorStruct_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ind), __pyx_ptype_5numpy_ndarray, 1, "ind", 0))) __PYX_ERR(0, 1485, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Out), (&PyString_Type), 1, "Out", 1))) __PYX_ERR(0, 1487, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_38_Ves_Smesh_TorStruct_SubFromInd_cython(__pyx_self, __pyx_v_PhiMinMax, __pyx_v_dL, __pyx_v_dRPhi, __pyx_v_VPoly, __pyx_v_ind, __pyx_v_DIn, __pyx_v_VIn, __pyx_v_Out, __pyx_v_margin);
1487: str Out='(X,Y,Z)',
+1488: double margin=_VSMALL):
__pyx_k__55 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1489: """ Return the desired surfacic submesh indicated by the limits (DR,DZ,DPhi)
1490: for the desired resolution (dR,dZ,dRphi) """
1491: cdef double Dphi, dR0r, dZ0r
1492: cdef int NR0, NZ0, R0n, Z0n, NRPhi0
+1493: cdef double[::1] phiMinMax = np.array([Catan2(Csin(PhiMinMax[0]),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = 0; /* … */ __pyx_t_2 = PyFloat_FromDouble(atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_4)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_5)) )))))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); __pyx_t_2 = 0; __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 1493, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_phiMinMax = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+1494: Ccos(PhiMinMax[0])),
__pyx_t_5 = 0;
+1495: Catan2(Csin(PhiMinMax[1]),
__pyx_t_6 = 1; /* … */ __pyx_t_8 = PyFloat_FromDouble(atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_6)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_PhiMinMax.data) + __pyx_t_7)) )))))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1495, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8);
+1496: Ccos(PhiMinMax[1]))])
__pyx_t_7 = 1;
1497: cdef np.ndarray[double, ndim=1] R0, Z0, dsF, dSM, dLr, Rref, dRPhir, dS
1498: cdef np.ndarray[long,ndim=1] bla, indR0, indZ0, iind, iindF, indM, NL
1499: cdef np.ndarray[double,ndim=2] ptsrz, pts, PtsM, VPbis, Pts
+1500: cdef list LPts=[], LdS=[], Lind=[]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LPts = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_LdS = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_Lind = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
1501:
1502: # Pre-format input
1503: # Required distance effective at max R
+1504: Dphi = DIn/np.max(VPoly[0,:]) if DIn!=0. else 0.
if (((__pyx_v_DIn != 0.) != 0)) {
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_max); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_10.data = __pyx_v_VPoly.data;
__pyx_t_10.memview = __pyx_v_VPoly.memview;
__PYX_INC_MEMVIEW(&__pyx_t_10, 0);
{
Py_ssize_t __pyx_tmp_idx = 0;
Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0];
if ((0)) __PYX_ERR(0, 1504, __pyx_L1_error)
__pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1];
__pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1];
__pyx_t_10.suboffsets[0] = -1;
__pyx_t_9 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__pyx_t_10.memview = NULL;
__pyx_t_10.data = NULL;
__pyx_t_2 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_2)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
}
}
__pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_2, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9);
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1504, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_11 = __pyx_t_12;
} else {
__pyx_t_11 = 0.;
}
__pyx_v_Dphi = __pyx_t_11;
1505:
1506: # Get the basic meshes for the faces
+1507: R0, dR0r, bla, NR0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[0,:]),
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_min); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1507, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_1 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_2); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; /* … */ __pyx_t_14 = PyList_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_13); PyList_SET_ITEM(__pyx_t_14, 1, __pyx_t_13); __pyx_t_1 = 0; __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_13, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_14); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_9); __pyx_t_3 = 0; __pyx_t_9 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_14, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1507, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_9 = PyList_GET_ITEM(sequence, 0); __pyx_t_14 = PyList_GET_ITEM(sequence, 1); __pyx_t_8 = PyList_GET_ITEM(sequence, 2); __pyx_t_13 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_13); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_9,&__pyx_t_14,&__pyx_t_8,&__pyx_t_13}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_9,&__pyx_t_14,&__pyx_t_8,&__pyx_t_13}; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_16(__pyx_t_1); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_1), 4) < 0) __PYX_ERR(0, 1507, __pyx_L1_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1507, __pyx_L1_error) __pyx_L4_unpacking_done:; } if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1507, __pyx_L1_error) __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1507, __pyx_L1_error) __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1507, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_R0.rcbuffer->pybuffer); __pyx_t_19 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_R0.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_19 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_R0.rcbuffer->pybuffer, (PyObject*)__pyx_v_R0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_R0.diminfo[0].strides = __pyx_pybuffernd_R0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_R0.diminfo[0].shape = __pyx_pybuffernd_R0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 1507, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_R0 = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_v_dR0r = __pyx_t_11; __pyx_t_23 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bla.rcbuffer->pybuffer); __pyx_t_19 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bla.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_19 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bla.rcbuffer->pybuffer, (PyObject*)__pyx_v_bla, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_bla.diminfo[0].strides = __pyx_pybuffernd_bla.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bla.diminfo[0].shape = __pyx_pybuffernd_bla.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 1507, __pyx_L1_error) } __pyx_t_23 = 0; __pyx_v_bla = ((PyArrayObject *)__pyx_t_8); __pyx_t_8 = 0; __pyx_v_NR0 = __pyx_t_17;
+1508: np.max(VPoly[0,:])]),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_max); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1508, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_13 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_15, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_2); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1508, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+1509: dL, DL=None, Lim=True,
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); /* … */ __pyx_t_9 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 1509, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1509, __pyx_L1_error)
+1510: margin=margin)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 1509, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1511: Z0, dZ0r, bla, NZ0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[1,:]),
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1511, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_8 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); __pyx_t_8 = 0; __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_13 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; /* … */ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_14); __pyx_t_13 = 0; __pyx_t_14 = 0; /* … */ __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_13))) || (PyList_CheckExact(__pyx_t_13))) { PyObject* sequence = __pyx_t_13; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1511, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_14 = PyList_GET_ITEM(sequence, 0); __pyx_t_2 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); __pyx_t_1 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_14,&__pyx_t_2,&__pyx_t_3,&__pyx_t_1}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_14,&__pyx_t_2,&__pyx_t_3,&__pyx_t_1}; __pyx_t_8 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_8)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_16(__pyx_t_8); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_8), 4) < 0) __PYX_ERR(0, 1511, __pyx_L1_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1511, __pyx_L1_error) __pyx_L6_unpacking_done:; } if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1511, __pyx_L1_error) __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1511, __pyx_L1_error) __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1511, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_14); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer); __pyx_t_19 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_19 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_v_Z0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_Z0.diminfo[0].strides = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Z0.diminfo[0].shape = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 1511, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_Z0 = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0; __pyx_v_dZ0r = __pyx_t_11; __pyx_t_23 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bla.rcbuffer->pybuffer); __pyx_t_19 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bla.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_19 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bla.rcbuffer->pybuffer, (PyObject*)__pyx_v_bla, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_bla.diminfo[0].strides = __pyx_pybuffernd_bla.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bla.diminfo[0].shape = __pyx_pybuffernd_bla.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 1511, __pyx_L1_error) } __pyx_t_23 = 0; __Pyx_DECREF_SET(__pyx_v_bla, ((PyArrayObject *)__pyx_t_3)); __pyx_t_3 = 0; __pyx_v_NZ0 = __pyx_t_17;
+1512: np.max(VPoly[1,:])]),
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1512, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_15, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_9); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1513: dL, DL=None, Lim=True,
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); /* … */ __pyx_t_14 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 1513, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1513, __pyx_L1_error)
+1514: margin=margin)
__pyx_t_13 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_margin, __pyx_t_13) < 0) __PYX_ERR(0, 1513, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
1515:
+1516: PtsM, dSM, indM,\
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1516, __pyx_L1_error) __pyx_t_27 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsM.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsM, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_PtsM.diminfo[0].strides = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsM.diminfo[0].shape = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsM.diminfo[1].strides = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsM.diminfo[1].shape = __pyx_pybuffernd_PtsM.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1516, __pyx_L1_error) } __pyx_t_27 = 0; __pyx_v_PtsM = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_14); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dSM.rcbuffer->pybuffer, (PyObject*)__pyx_v_dSM, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_dSM.diminfo[0].strides = __pyx_pybuffernd_dSM.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dSM.diminfo[0].shape = __pyx_pybuffernd_dSM.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1516, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_dSM = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0; __pyx_t_23 = ((PyArrayObject *)__pyx_t_13); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indM.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indM.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indM.rcbuffer->pybuffer, (PyObject*)__pyx_v_indM, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_indM.diminfo[0].strides = __pyx_pybuffernd_indM.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indM.diminfo[0].shape = __pyx_pybuffernd_indM.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1516, __pyx_L1_error) } __pyx_t_23 = 0; __pyx_v_indM = ((PyArrayObject *)__pyx_t_13); __pyx_t_13 = 0; __pyx_t_23 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1517, __pyx_L1_error) } __pyx_t_23 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1517, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_8); __pyx_t_8 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1517, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_15); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dRPhir.rcbuffer->pybuffer, (PyObject*)__pyx_v_dRPhir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_dRPhir.diminfo[0].strides = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dRPhir.diminfo[0].shape = __pyx_pybuffernd_dRPhir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1518, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_dRPhir = ((PyArrayObject *)__pyx_t_15); __pyx_t_15 = 0; __pyx_v_nRPhi0 = __pyx_t_24; __pyx_t_24 = 0; __pyx_t_27 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1518, __pyx_L1_error) } __pyx_t_27 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_25); __pyx_t_25 = 0;
1517: NL, dLr, Rref,\
+1518: dRPhir, nRPhi0, VPbis = _Ves_Smesh_Tor_SubFromD_cython(dL, dRPhi, VPoly,
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_Ves_Smesh_Tor_SubFromD_cython); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dRPhi); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_14, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 9)) { if (size > 9) __Pyx_RaiseTooManyValuesError(9); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1516, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_13 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); __pyx_t_15 = PyTuple_GET_ITEM(sequence, 6); __pyx_t_24 = PyTuple_GET_ITEM(sequence, 7); __pyx_t_25 = PyTuple_GET_ITEM(sequence, 8); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_14 = PyList_GET_ITEM(sequence, 1); __pyx_t_13 = PyList_GET_ITEM(sequence, 2); __pyx_t_1 = PyList_GET_ITEM(sequence, 3); __pyx_t_8 = PyList_GET_ITEM(sequence, 4); __pyx_t_9 = PyList_GET_ITEM(sequence, 5); __pyx_t_15 = PyList_GET_ITEM(sequence, 6); __pyx_t_24 = PyList_GET_ITEM(sequence, 7); __pyx_t_25 = PyList_GET_ITEM(sequence, 8); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_24); __Pyx_INCREF(__pyx_t_25); #else { Py_ssize_t i; PyObject** temps[9] = {&__pyx_t_2,&__pyx_t_14,&__pyx_t_13,&__pyx_t_1,&__pyx_t_8,&__pyx_t_9,&__pyx_t_15,&__pyx_t_24,&__pyx_t_25}; for (i=0; i < 9; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1516, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[9] = {&__pyx_t_2,&__pyx_t_14,&__pyx_t_13,&__pyx_t_1,&__pyx_t_8,&__pyx_t_9,&__pyx_t_15,&__pyx_t_24,&__pyx_t_25}; __pyx_t_26 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = Py_TYPE(__pyx_t_26)->tp_iternext; for (index=0; index < 9; index++) { PyObject* item = __pyx_t_16(__pyx_t_26); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_26), 9) < 0) __PYX_ERR(0, 1516, __pyx_L1_error) __pyx_t_16 = NULL; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_16 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1516, __pyx_L1_error) __pyx_L8_unpacking_done:; }
+1519: DR=None, DZ=None,
__pyx_t_2 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_DR, Py_None) < 0) __PYX_ERR(0, 1519, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_DZ, Py_None) < 0) __PYX_ERR(0, 1519, __pyx_L1_error)
+1520: DPhi=None,
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_DPhi, Py_None) < 0) __PYX_ERR(0, 1519, __pyx_L1_error)
+1521: DIn=DIn, VIn=VIn,
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_DIn, __pyx_t_3) < 0) __PYX_ERR(0, 1519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_VIn, __pyx_v_VIn) < 0) __PYX_ERR(0, 1519, __pyx_L1_error)
+1522: PhiMinMax=phiMinMax,
__pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_phiMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_PhiMinMax, __pyx_t_3) < 0) __PYX_ERR(0, 1519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1523: Out=Out, margin=margin)
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Out, __pyx_v_Out) < 0) __PYX_ERR(0, 1519, __pyx_L1_error) __pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 1519, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
1524: # First face
+1525: ii = (ind<NR0*NZ0).nonzero()[0]
__pyx_t_25 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_24 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_25, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1525, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __pyx_t_24 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) { __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_24)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_24); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); } } __pyx_t_3 = (__pyx_t_24) ? __Pyx_PyObject_CallOneArg(__pyx_t_25, __pyx_t_24) : __Pyx_PyObject_CallNoArg(__pyx_t_25); __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_ii = __pyx_t_25; __pyx_t_25 = 0;
+1526: nii = len(ii)
__pyx_t_28 = PyObject_Length(__pyx_v_ii); if (unlikely(__pyx_t_28 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1526, __pyx_L1_error) __pyx_v_nii = __pyx_t_28;
+1527: if nii>0:
__pyx_t_29 = ((__pyx_v_nii > 0) != 0);
if (__pyx_t_29) {
/* … */
}
+1528: indZ0 = ind[ii] // NR0
__pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NR0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_24 = PyNumber_FloorDivide(__pyx_t_25, __pyx_t_3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_24) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_24, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1528, __pyx_L1_error) __pyx_t_23 = ((PyArrayObject *)__pyx_t_24); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_indZ0.diminfo[0].strides = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ0.diminfo[0].shape = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1528, __pyx_L1_error) } __pyx_t_23 = 0; __pyx_v_indZ0 = ((PyArrayObject *)__pyx_t_24); __pyx_t_24 = 0;
+1529: indR0 = (ind[ii]-indZ0*NR0)
__pyx_t_24 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_NR0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_25 = PyNumber_Multiply(((PyObject *)__pyx_v_indZ0), __pyx_t_3); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_24, __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1529, __pyx_L1_error) __pyx_t_23 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indR0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_indR0.diminfo[0].strides = __pyx_pybuffernd_indR0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indR0.diminfo[0].shape = __pyx_pybuffernd_indR0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1529, __pyx_L1_error) } __pyx_t_23 = 0; __pyx_v_indR0 = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+1530: if Out.lower()=='(x,y,z)':
__pyx_t_3 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_29 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_29 < 0)) __PYX_ERR(0, 1530, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_29) { /* … */ goto __pyx_L10; }
+1531: pts = np.array([R0[indR0]*Ccos(phiMinMax[0]+Dphi),
__Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_np); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_array); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_R0), ((PyObject *)__pyx_v_indR0)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_30 = 0; __pyx_t_15 = PyFloat_FromDouble(cos(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_30)) ))) + __pyx_v_Dphi))); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_9 = PyNumber_Multiply(__pyx_t_25, __pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; /* … */ __pyx_t_15 = PyList_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_25); PyList_SET_ITEM(__pyx_t_15, 2, __pyx_t_25); __pyx_t_9 = 0; __pyx_t_8 = 0; __pyx_t_25 = 0; __pyx_t_25 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_24))) { __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_24); if (likely(__pyx_t_25)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_24); __Pyx_INCREF(__pyx_t_25); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_24, function); } } __pyx_t_3 = (__pyx_t_25) ? __Pyx_PyObject_Call2Args(__pyx_t_24, __pyx_t_25, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_24, __pyx_t_15); __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1531, __pyx_L1_error) __pyx_t_27 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1531, __pyx_L1_error) } __pyx_t_27 = 0; __pyx_v_pts = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0;
+1532: R0[indR0]*Csin(phiMinMax[0]+Dphi), Z0[indZ0]])
__pyx_t_15 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_R0), ((PyObject *)__pyx_v_indR0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_31 = 0; __pyx_t_25 = PyFloat_FromDouble(sin(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_31)) ))) + __pyx_v_Dphi))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_8 = PyNumber_Multiply(__pyx_t_15, __pyx_t_25); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25);
1533: else:
+1534: pts = np.array([R0[indR0], Z0[indZ0],
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_24, __pyx_n_s_np); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_array); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__pyx_t_24 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_R0), ((PyObject *)__pyx_v_indR0)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
/* … */
__pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_24);
PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_24);
__Pyx_GIVEREF(__pyx_t_25);
PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_25);
__Pyx_GIVEREF(__pyx_t_13);
PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_13);
__pyx_t_24 = 0;
__pyx_t_25 = 0;
__pyx_t_13 = 0;
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_15, function);
}
}
__pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_13, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_9);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1534, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1534, __pyx_L1_error)
__pyx_t_27 = ((PyArrayObject *)__pyx_t_3);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_17 < 0)) {
PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20);
}
__pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0;
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1534, __pyx_L1_error)
}
__pyx_t_27 = 0;
__pyx_v_pts = ((PyArrayObject *)__pyx_t_3);
__pyx_t_3 = 0;
}
__pyx_L10:;
+1535: (phiMinMax[0]+Dphi)*np.ones((nii,))])
__pyx_t_32 = 0;
__pyx_t_8 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_32)) ))) + __pyx_v_Dphi)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromSsize_t(__pyx_v_nii); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_13);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_13, function);
}
}
__pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_1, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_14);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
__pyx_t_13 = PyNumber_Multiply(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1536: pts = pts if nii>1 else pts.reshape((3,1))
if (((__pyx_v_nii > 1) != 0)) {
__Pyx_INCREF(((PyObject *)__pyx_v_pts));
__pyx_t_3 = ((PyObject *)__pyx_v_pts);
} else {
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pts), __pyx_n_s_reshape); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_13 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_13 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_13)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_13);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
}
}
__pyx_t_15 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_13, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_tuple__49);
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1536, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1536, __pyx_L1_error)
__pyx_t_3 = __pyx_t_15;
__pyx_t_15 = 0;
}
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_3), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_17 < 0)) {
PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
}
__pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0;
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1536, __pyx_L1_error)
}
__Pyx_DECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_3));
__pyx_t_3 = 0;
+1537: LPts.append( pts )
__pyx_t_33 = __Pyx_PyList_Append(__pyx_v_LPts, ((PyObject *)__pyx_v_pts)); if (unlikely(__pyx_t_33 == ((int)-1))) __PYX_ERR(0, 1537, __pyx_L1_error)
+1538: LdS.append( dR0r*dZ0r*np.ones((nii,)) )
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_dR0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ones); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_nii); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_25 = PyTuple_New(1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_15 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_9, __pyx_t_25) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_25); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_Multiply(__pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_33 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_13); if (unlikely(__pyx_t_33 == ((int)-1))) __PYX_ERR(0, 1538, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
1539:
1540: # Main body
+1541: ii = (ind>=NR0*NZ0) & (ind<NR0*NZ0+PtsM.shape[1])
__pyx_t_13 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_15 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_13, Py_GE); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1541, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyInt_From_Py_intptr_t(((__pyx_v_NR0 * __pyx_v_NZ0) + (__pyx_v_PtsM->dimensions[1]))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_13, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1541, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = PyNumber_And(__pyx_t_15, __pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_ii, __pyx_t_13); __pyx_t_13 = 0;
+1542: nii = len(ii)
__pyx_t_28 = PyObject_Length(__pyx_v_ii); if (unlikely(__pyx_t_28 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1542, __pyx_L1_error) __pyx_v_nii = __pyx_t_28;
+1543: if nii>0:
__pyx_t_29 = ((__pyx_v_nii > 0) != 0);
if (__pyx_t_29) {
/* … */
}
+1544: pts = PtsM[:,ind[ii]-NR0*NZ0] if nii>1\
if (((__pyx_v_nii > 1) != 0)) {
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_15 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_25 = PyNumber_Subtract(__pyx_t_3, __pyx_t_15); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_INCREF(__pyx_slice__8);
__Pyx_GIVEREF(__pyx_slice__8);
PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_slice__8);
__Pyx_GIVEREF(__pyx_t_25);
PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_25);
__pyx_t_25 = 0;
__pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsM), __pyx_t_15); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1544, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1544, __pyx_L1_error)
__pyx_t_13 = __pyx_t_25;
__pyx_t_25 = 0;
} else {
+1545: else PtsM[:,ind[ii]-NR0*NZ0].reshape((3,1))
__pyx_t_15 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_Subtract(__pyx_t_15, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsM), __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_25 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1545, __pyx_L1_error) __pyx_t_13 = __pyx_t_25; __pyx_t_25 = 0; } { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_13), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1544, __pyx_L1_error) } __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_13)); __pyx_t_13 = 0;
+1546: LPts.append( PtsM[:,ind[ii]-NR0*NZ0] )
__pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_25 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_3 = PyNumber_Subtract(__pyx_t_13, __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = PyTuple_New(2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_25, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsM), __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_33 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_3); if (unlikely(__pyx_t_33 == ((int)-1))) __PYX_ERR(0, 1546, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1547: LdS.append( dSM[ind[ii]-NR0*NZ0] )
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_25 = __Pyx_PyInt_From_int((__pyx_v_NR0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_13 = PyNumber_Subtract(__pyx_t_3, __pyx_t_25); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dSM), __pyx_t_13); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_33 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_25); if (unlikely(__pyx_t_33 == ((int)-1))) __PYX_ERR(0, 1547, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
1548:
1549: # Second face
+1550: ii = (ind >= NR0*NZ0+PtsM.shape[1] ).nonzero()[0]
__pyx_t_13 = __Pyx_PyInt_From_Py_intptr_t(((__pyx_v_NR0 * __pyx_v_NZ0) + (__pyx_v_PtsM->dimensions[1]))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_13, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1550, __pyx_L1_error) __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_13, function); } } __pyx_t_25 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_13); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_25, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_ii, __pyx_t_13); __pyx_t_13 = 0;
+1551: nii = len(ii)
__pyx_t_28 = PyObject_Length(__pyx_v_ii); if (unlikely(__pyx_t_28 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1551, __pyx_L1_error) __pyx_v_nii = __pyx_t_28;
+1552: if nii>0:
__pyx_t_29 = ((__pyx_v_nii > 0) != 0);
if (__pyx_t_29) {
/* … */
}
+1553: indZ0 = (ind[ii]-(NR0*NZ0+PtsM.shape[1])) // NR0
__pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_25 = __Pyx_PyInt_From_Py_intptr_t(((__pyx_v_NR0 * __pyx_v_NZ0) + (__pyx_v_PtsM->dimensions[1]))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_3 = PyNumber_Subtract(__pyx_t_13, __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_NR0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_13 = PyNumber_FloorDivide(__pyx_t_3, __pyx_t_25); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1553, __pyx_L1_error) __pyx_t_23 = ((PyArrayObject *)__pyx_t_13); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_indZ0.diminfo[0].strides = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ0.diminfo[0].shape = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1553, __pyx_L1_error) } __pyx_t_23 = 0; __Pyx_XDECREF_SET(__pyx_v_indZ0, ((PyArrayObject *)__pyx_t_13)); __pyx_t_13 = 0;
+1554: indR0 = ind[ii]-(NR0*NZ0+PtsM.shape[1]) - indZ0*NR0
__pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), __pyx_v_ii); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_25 = __Pyx_PyInt_From_Py_intptr_t(((__pyx_v_NR0 * __pyx_v_NZ0) + (__pyx_v_PtsM->dimensions[1]))); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_3 = PyNumber_Subtract(__pyx_t_13, __pyx_t_25); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_NR0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_13 = PyNumber_Multiply(((PyObject *)__pyx_v_indZ0), __pyx_t_25); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __pyx_t_25 = PyNumber_Subtract(__pyx_t_3, __pyx_t_13); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1554, __pyx_L1_error) __pyx_t_23 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer, (PyObject*)__pyx_t_23, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indR0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indR0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_indR0.diminfo[0].strides = __pyx_pybuffernd_indR0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indR0.diminfo[0].shape = __pyx_pybuffernd_indR0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1554, __pyx_L1_error) } __pyx_t_23 = 0; __Pyx_XDECREF_SET(__pyx_v_indR0, ((PyArrayObject *)__pyx_t_25)); __pyx_t_25 = 0;
+1555: if Out.lower()=='(x,y,z)':
__pyx_t_25 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Out); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_29 = (__Pyx_PyString_Equals(__pyx_t_25, __pyx_kp_s_x_y_z, Py_EQ)); if (unlikely(__pyx_t_29 < 0)) __PYX_ERR(0, 1555, __pyx_L1_error) __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (__pyx_t_29) { /* … */ goto __pyx_L13; }
+1556: pts = np.array([R0[indR0]*Ccos(phiMinMax[1]-Dphi),
__Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_np); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_R0), ((PyObject *)__pyx_v_indR0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_34 = 1; __pyx_t_9 = PyFloat_FromDouble(cos(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_34)) ))) - __pyx_v_Dphi))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_15 = PyNumber_Multiply(__pyx_t_13, __pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_24); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_24); __Pyx_GIVEREF(__pyx_t_13); PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_13); __pyx_t_15 = 0; __pyx_t_24 = 0; __pyx_t_13 = 0; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_25 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_13, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1556, __pyx_L1_error) __pyx_t_27 = ((PyArrayObject *)__pyx_t_25); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1556, __pyx_L1_error) } __pyx_t_27 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_25)); __pyx_t_25 = 0;
+1557: R0[indR0]*Csin(phiMinMax[1]-Dphi), Z0[indZ0]])
__pyx_t_9 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_R0), ((PyObject *)__pyx_v_indR0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_35 = 1; __pyx_t_13 = PyFloat_FromDouble(sin(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_35)) ))) - __pyx_v_Dphi))); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_24 = PyNumber_Multiply(__pyx_t_9, __pyx_t_13); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_24); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13);
1558: else:
+1559: pts = np.array([R0[indR0], Z0[indZ0],
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_R0), ((PyObject *)__pyx_v_indR0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_13 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
/* … */
__pyx_t_15 = PyList_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_GIVEREF(__pyx_t_3);
PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_13);
PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_13);
__Pyx_GIVEREF(__pyx_t_14);
PyList_SET_ITEM(__pyx_t_15, 2, __pyx_t_14);
__pyx_t_3 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
}
}
__pyx_t_25 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_14, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_15);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1559, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_25);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
if (!(likely(((__pyx_t_25) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_25, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1559, __pyx_L1_error)
__pyx_t_27 = ((PyArrayObject *)__pyx_t_25);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_17 < 0)) {
PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20);
}
__pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0;
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1559, __pyx_L1_error)
}
__pyx_t_27 = 0;
__Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_25));
__pyx_t_25 = 0;
}
__pyx_L13:;
+1560: (phiMinMax[1]-Dphi)*np.ones((nii,))])
__pyx_t_36 = 1;
__pyx_t_24 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_phiMinMax.data) + __pyx_t_36)) ))) - __pyx_v_Dphi)); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ones); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyInt_FromSsize_t(__pyx_v_nii); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_14);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_14, function);
}
}
__pyx_t_15 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_1);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
__pyx_t_14 = PyNumber_Multiply(__pyx_t_24, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1560, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+1561: pts = pts if nii>1 else pts.reshape((3,1))
if (((__pyx_v_nii > 1) != 0)) {
__Pyx_INCREF(((PyObject *)__pyx_v_pts));
__pyx_t_25 = ((PyObject *)__pyx_v_pts);
} else {
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pts), __pyx_n_s_reshape); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1561, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_14 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) {
__pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15);
if (likely(__pyx_t_14)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
__Pyx_INCREF(__pyx_t_14);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_15, function);
}
}
__pyx_t_9 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_14, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_tuple__49);
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1561, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1561, __pyx_L1_error)
__pyx_t_25 = __pyx_t_9;
__pyx_t_9 = 0;
}
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_25), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_17 < 0)) {
PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22);
}
__pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0;
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1561, __pyx_L1_error)
}
__Pyx_DECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_25));
__pyx_t_25 = 0;
+1562: LPts.append( pts )
__pyx_t_33 = __Pyx_PyList_Append(__pyx_v_LPts, ((PyObject *)__pyx_v_pts)); if (unlikely(__pyx_t_33 == ((int)-1))) __PYX_ERR(0, 1562, __pyx_L1_error)
+1563: LdS.append( dR0r*dZ0r*np.ones((nii,)) )
__pyx_t_25 = PyFloat_FromDouble((__pyx_v_dR0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_ones); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyInt_FromSsize_t(__pyx_v_nii); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_9 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_15, __pyx_t_13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_13); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Multiply(__pyx_t_25, __pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_33 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_14); if (unlikely(__pyx_t_33 == ((int)-1))) __PYX_ERR(0, 1563, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
1564:
1565: # Aggregate
+1566: if len(LPts)==1:
__pyx_t_28 = PyList_GET_SIZE(__pyx_v_LPts); if (unlikely(__pyx_t_28 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1566, __pyx_L1_error) __pyx_t_29 = ((__pyx_t_28 == 1) != 0); if (__pyx_t_29) { /* … */ goto __pyx_L14; }
+1567: Pts = LPts[0]
if (!(likely(((PyList_GET_ITEM(__pyx_v_LPts, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_LPts, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1567, __pyx_L1_error) __pyx_t_14 = PyList_GET_ITEM(__pyx_v_LPts, 0); __Pyx_INCREF(__pyx_t_14); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_14), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1567, __pyx_L1_error) } __pyx_v_Pts = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0;
+1568: dS = LdS[0]
if (!(likely(((PyList_GET_ITEM(__pyx_v_LdS, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_LdS, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1568, __pyx_L1_error) __pyx_t_14 = PyList_GET_ITEM(__pyx_v_LdS, 0); __Pyx_INCREF(__pyx_t_14); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_14), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1568, __pyx_L1_error) } __pyx_v_dS = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0;
+1569: elif len(LPts)>1:
__pyx_t_28 = PyList_GET_SIZE(__pyx_v_LPts); if (unlikely(__pyx_t_28 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1569, __pyx_L1_error) __pyx_t_29 = ((__pyx_t_28 > 1) != 0); if (__pyx_t_29) { /* … */ } __pyx_L14:;
+1570: Pts = np.concatenate(tuple(LPts),axis=1)
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyList_AsTuple(__pyx_v_LPts); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_25 = PyTuple_New(1); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 1570, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_25, __pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1570, __pyx_L1_error) __pyx_t_27 = ((PyArrayObject *)__pyx_t_13); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_27, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_22, &__pyx_t_21, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_22); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_22, __pyx_t_21, __pyx_t_20); } __pyx_t_22 = __pyx_t_21 = __pyx_t_20 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1570, __pyx_L1_error) } __pyx_t_27 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_13); __pyx_t_13 = 0;
+1571: dS = np.concatenate(tuple(LdS))
__Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyList_AsTuple(__pyx_v_LdS); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_25))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); } } __pyx_t_13 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_25, __pyx_t_9, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_25, __pyx_t_14); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1571, __pyx_L1_error) __pyx_t_18 = ((PyArrayObject *)__pyx_t_13); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_21, &__pyx_t_22); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_21); Py_XDECREF(__pyx_t_22); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_21, __pyx_t_22); } __pyx_t_20 = __pyx_t_21 = __pyx_t_22 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1571, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_13); __pyx_t_13 = 0;
1572:
+1573: return Pts, dS, NL, dLr, Rref, dR0r, dZ0r, dRPhir, VPbis
__Pyx_XDECREF(__pyx_r); __pyx_t_13 = PyFloat_FromDouble(__pyx_v_dR0r); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_25 = PyFloat_FromDouble(__pyx_v_dZ0r); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 1573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __pyx_t_14 = PyTuple_New(9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_14, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_14, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_NL)); PyTuple_SET_ITEM(__pyx_t_14, 2, ((PyObject *)__pyx_v_NL)); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_14, 3, ((PyObject *)__pyx_v_dLr)); __Pyx_INCREF(((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Rref)); PyTuple_SET_ITEM(__pyx_t_14, 4, ((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 5, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_14, 6, __pyx_t_25); __Pyx_INCREF(((PyObject *)__pyx_v_dRPhir)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dRPhir)); PyTuple_SET_ITEM(__pyx_t_14, 7, ((PyObject *)__pyx_v_dRPhir)); __Pyx_INCREF(((PyObject *)__pyx_v_VPbis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_VPbis)); PyTuple_SET_ITEM(__pyx_t_14, 8, ((PyObject *)__pyx_v_VPbis)); __pyx_t_13 = 0; __pyx_t_25 = 0; __pyx_r = __pyx_t_14; __pyx_t_14 = 0; goto __pyx_L0;
1574:
1575:
1576:
1577:
1578:
1579:
1580: ########################################################
1581: ########################################################
1582: # Meshing - Surface - Lin
1583: ########################################################
1584:
1585:
1586: @cython.cdivision(True)
1587: @cython.wraparound(False)
1588: @cython.boundscheck(False)
+1589: cdef _check_DLvsLMinMax(double[::1] LMinMax, DL=None):
static PyObject *__pyx_f_4tofu_4geom_5_GG03__check_DLvsLMinMax(__Pyx_memviewslice __pyx_v_LMinMax, struct __pyx_opt_args_4tofu_4geom_5_GG03__check_DLvsLMinMax *__pyx_optional_args) {
PyObject *__pyx_v_DL = ((PyObject *)Py_None);
long __pyx_v_Inter;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_check_DLvsLMinMax", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_DL = __pyx_optional_args->DL;
}
}
__Pyx_INCREF(__pyx_v_DL);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_AddTraceback("tofu.geom._GG03._check_DLvsLMinMax", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_DL);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03__check_DLvsLMinMax {
int __pyx_n;
PyObject *DL;
};
+1590: Inter = 1
__pyx_v_Inter = 1;
+1591: if DL is not None:
__pyx_t_1 = (__pyx_v_DL != Py_None);
__pyx_t_2 = (__pyx_t_1 != 0);
if (__pyx_t_2) {
/* … */
}
+1592: assert len(DL)==2 and DL[0]<DL[1]
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = PyObject_Length(__pyx_v_DL); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1592, __pyx_L1_error)
__pyx_t_1 = ((__pyx_t_3 == 2) != 0);
if (__pyx_t_1) {
} else {
__pyx_t_2 = __pyx_t_1;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_DL, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_DL, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1592, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1592, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1592, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __pyx_t_1;
__pyx_L4_bool_binop_done:;
if (unlikely(!__pyx_t_2)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1592, __pyx_L1_error)
}
}
#endif
+1593: assert LMinMax[0]<LMinMax[1]
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = 0;
__pyx_t_8 = 1;
if (unlikely(!(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_7)) ))) < (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_8)) )))) != 0))) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 1593, __pyx_L1_error)
}
}
#endif
+1594: DL = list(DL)
__pyx_t_6 = PySequence_List(__pyx_v_DL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1594, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF_SET(__pyx_v_DL, __pyx_t_6); __pyx_t_6 = 0;
+1595: if DL[0]>LMinMax[1] or DL[1]<LMinMax[0]:
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_DL, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_9 = 1; __pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_9)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L7_bool_binop_done; } __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_DL, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = 0; __pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_10)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 1595, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_2 = __pyx_t_1; __pyx_L7_bool_binop_done:; if (__pyx_t_2) { /* … */ goto __pyx_L6; }
+1596: Inter = 0
__pyx_v_Inter = 0;
1597: else:
+1598: if DL[0]<=LMinMax[0]:
/*else*/ {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_DL, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_11 = 0;
__pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_11)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1598, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_2) {
/* … */
}
+1599: DL[0] = None
if (unlikely(__Pyx_SetItemInt(__pyx_v_DL, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1599, __pyx_L1_error)
+1600: if DL[1]>=LMinMax[1]:
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_DL, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = 1; __pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_LMinMax.data) + __pyx_t_12)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1600, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_GE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1600, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 1600, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_2) { /* … */ } } __pyx_L6:;
+1601: DL[1] = None
if (unlikely(__Pyx_SetItemInt(__pyx_v_DL, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 0, 0, 0) < 0)) __PYX_ERR(0, 1601, __pyx_L1_error)
+1602: return Inter, DL
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_Inter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __Pyx_INCREF(__pyx_v_DL); __Pyx_GIVEREF(__pyx_v_DL); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_DL); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
1603:
1604:
1605:
1606: @cython.cdivision(True)
1607: @cython.wraparound(False)
1608: @cython.boundscheck(False)
+1609: def _Ves_Smesh_Lin_SubFromD_cython(double[::1] XMinMax, double dL, double dX,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_41_Ves_Smesh_Lin_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_40_Ves_Smesh_Lin_SubFromD_cython[] = "Return the desired surfacic submesh indicated by the limits (DX,DY,DZ),\n for the desired resolution (dX,dL) ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_41_Ves_Smesh_Lin_SubFromD_cython = {"_Ves_Smesh_Lin_SubFromD_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_41_Ves_Smesh_Lin_SubFromD_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_40_Ves_Smesh_Lin_SubFromD_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_41_Ves_Smesh_Lin_SubFromD_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_XMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dL;
double __pyx_v_dX;
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_DX = 0;
PyObject *__pyx_v_DY = 0;
PyObject *__pyx_v_DZ = 0;
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Lin_SubFromD_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_XMinMax,&__pyx_n_s_dL,&__pyx_n_s_dX,&__pyx_n_s_VPoly,&__pyx_n_s_DX,&__pyx_n_s_DY,&__pyx_n_s_DZ,&__pyx_n_s_DIn,&__pyx_n_s_VIn,&__pyx_n_s_margin,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_40_Ves_Smesh_Lin_SubFromD_cython(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_XMinMax, double __pyx_v_dL, double __pyx_v_dX, __Pyx_memviewslice __pyx_v_VPoly, PyObject *__pyx_v_DX, PyObject *__pyx_v_DY, PyObject *__pyx_v_DZ, double __pyx_v_DIn, PyObject *__pyx_v_VIn, double __pyx_v_margin) {
PyArrayObject *__pyx_v_X = 0;
PyArrayObject *__pyx_v_Y0 = 0;
PyArrayObject *__pyx_v_Z0 = 0;
double __pyx_v_dXr;
double __pyx_v_dY0r;
double __pyx_v_dZ0r;
int __pyx_v_NY0;
int __pyx_v_NZ0;
int __pyx_v_Y0n;
int __pyx_v_Z0n;
int __pyx_v_NX;
int __pyx_v_Xn;
int __pyx_v_Ln;
int __pyx_v_NR0;
CYTHON_UNUSED int __pyx_v_Inter;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_PtsCross = 0;
PyArrayObject *__pyx_v_VPbis = 0;
PyArrayObject *__pyx_v_dS = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_indX = 0;
PyArrayObject *__pyx_v_indY0 = 0;
PyArrayObject *__pyx_v_indZ0 = 0;
PyArrayObject *__pyx_v_indL = 0;
PyArrayObject *__pyx_v_NL = 0;
PyArrayObject *__pyx_v_ind = 0;
PyObject *__pyx_v_InterX = NULL;
PyObject *__pyx_v_InterY = NULL;
PyObject *__pyx_v_InterZ = NULL;
PyObject *__pyx_v_indin = NULL;
PyObject *__pyx_v_pts = NULL;
PyObject *__pyx_v_iind = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_NL;
__Pyx_Buffer __pyx_pybuffer_NL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsCross;
__Pyx_Buffer __pyx_pybuffer_PtsCross;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPbis;
__Pyx_Buffer __pyx_pybuffer_VPbis;
__Pyx_LocalBuf_ND __pyx_pybuffernd_X;
__Pyx_Buffer __pyx_pybuffer_X;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Y0;
__Pyx_Buffer __pyx_pybuffer_Y0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Z0;
__Pyx_Buffer __pyx_pybuffer_Z0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indL;
__Pyx_Buffer __pyx_pybuffer_indL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indX;
__Pyx_Buffer __pyx_pybuffer_indX;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indY0;
__Pyx_Buffer __pyx_pybuffer_indY0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indZ0;
__Pyx_Buffer __pyx_pybuffer_indZ0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Lin_SubFromD_cython", 0);
__Pyx_INCREF(__pyx_v_DX);
__Pyx_INCREF(__pyx_v_DY);
__Pyx_INCREF(__pyx_v_DZ);
__pyx_pybuffer_X.pybuffer.buf = NULL;
__pyx_pybuffer_X.refcount = 0;
__pyx_pybuffernd_X.data = NULL;
__pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X;
__pyx_pybuffer_Y0.pybuffer.buf = NULL;
__pyx_pybuffer_Y0.refcount = 0;
__pyx_pybuffernd_Y0.data = NULL;
__pyx_pybuffernd_Y0.rcbuffer = &__pyx_pybuffer_Y0;
__pyx_pybuffer_Z0.pybuffer.buf = NULL;
__pyx_pybuffer_Z0.refcount = 0;
__pyx_pybuffernd_Z0.data = NULL;
__pyx_pybuffernd_Z0.rcbuffer = &__pyx_pybuffer_Z0;
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_PtsCross.pybuffer.buf = NULL;
__pyx_pybuffer_PtsCross.refcount = 0;
__pyx_pybuffernd_PtsCross.data = NULL;
__pyx_pybuffernd_PtsCross.rcbuffer = &__pyx_pybuffer_PtsCross;
__pyx_pybuffer_VPbis.pybuffer.buf = NULL;
__pyx_pybuffer_VPbis.refcount = 0;
__pyx_pybuffernd_VPbis.data = NULL;
__pyx_pybuffernd_VPbis.rcbuffer = &__pyx_pybuffer_VPbis;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_indX.pybuffer.buf = NULL;
__pyx_pybuffer_indX.refcount = 0;
__pyx_pybuffernd_indX.data = NULL;
__pyx_pybuffernd_indX.rcbuffer = &__pyx_pybuffer_indX;
__pyx_pybuffer_indY0.pybuffer.buf = NULL;
__pyx_pybuffer_indY0.refcount = 0;
__pyx_pybuffernd_indY0.data = NULL;
__pyx_pybuffernd_indY0.rcbuffer = &__pyx_pybuffer_indY0;
__pyx_pybuffer_indZ0.pybuffer.buf = NULL;
__pyx_pybuffer_indZ0.refcount = 0;
__pyx_pybuffernd_indZ0.data = NULL;
__pyx_pybuffernd_indZ0.rcbuffer = &__pyx_pybuffer_indZ0;
__pyx_pybuffer_indL.pybuffer.buf = NULL;
__pyx_pybuffer_indL.refcount = 0;
__pyx_pybuffernd_indL.data = NULL;
__pyx_pybuffernd_indL.rcbuffer = &__pyx_pybuffer_indL;
__pyx_pybuffer_NL.pybuffer.buf = NULL;
__pyx_pybuffer_NL.refcount = 0;
__pyx_pybuffernd_NL.data = NULL;
__pyx_pybuffernd_NL.rcbuffer = &__pyx_pybuffer_NL;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_7);
__PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_XDECREF(__pyx_t_27);
__PYX_XDEC_MEMVIEW(&__pyx_t_30, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Lin_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_X);
__Pyx_XDECREF((PyObject *)__pyx_v_Y0);
__Pyx_XDECREF((PyObject *)__pyx_v_Z0);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsCross);
__Pyx_XDECREF((PyObject *)__pyx_v_VPbis);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_indX);
__Pyx_XDECREF((PyObject *)__pyx_v_indY0);
__Pyx_XDECREF((PyObject *)__pyx_v_indZ0);
__Pyx_XDECREF((PyObject *)__pyx_v_indL);
__Pyx_XDECREF((PyObject *)__pyx_v_NL);
__Pyx_XDECREF((PyObject *)__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_InterX);
__Pyx_XDECREF(__pyx_v_InterY);
__Pyx_XDECREF(__pyx_v_InterZ);
__Pyx_XDECREF(__pyx_v_indin);
__Pyx_XDECREF(__pyx_v_pts);
__Pyx_XDECREF(__pyx_v_iind);
__PYX_XDEC_MEMVIEW(&__pyx_v_XMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__Pyx_XDECREF(__pyx_v_DX);
__Pyx_XDECREF(__pyx_v_DY);
__Pyx_XDECREF(__pyx_v_DZ);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__198 = PyTuple_Pack(43, __pyx_n_s_XMinMax, __pyx_n_s_dL, __pyx_n_s_dX, __pyx_n_s_VPoly, __pyx_n_s_DX, __pyx_n_s_DY, __pyx_n_s_DZ, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_margin, __pyx_n_s_X, __pyx_n_s_Y0, __pyx_n_s_Z0, __pyx_n_s_dXr, __pyx_n_s_dY0r, __pyx_n_s_dZ0r, __pyx_n_s_NY0, __pyx_n_s_NZ0, __pyx_n_s_Y0n, __pyx_n_s_Z0n, __pyx_n_s_NX, __pyx_n_s_Xn, __pyx_n_s_Ln, __pyx_n_s_NR0, __pyx_n_s_Inter, __pyx_n_s_Pts, __pyx_n_s_PtsCross, __pyx_n_s_VPbis, __pyx_n_s_dS, __pyx_n_s_dLr, __pyx_n_s_Rref, __pyx_n_s_indX, __pyx_n_s_indY0, __pyx_n_s_indZ0, __pyx_n_s_indL, __pyx_n_s_NL, __pyx_n_s_ind, __pyx_n_s_InterX, __pyx_n_s_InterY, __pyx_n_s_InterZ, __pyx_n_s_indin, __pyx_n_s_pts, __pyx_n_s_iind); if (unlikely(!__pyx_tuple__198)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__198);
__Pyx_GIVEREF(__pyx_tuple__198);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_41_Ves_Smesh_Lin_SubFromD_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_Lin_SubFromD_cython, __pyx_t_1) < 0) __PYX_ERR(0, 1609, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(10, 0, 43, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__198, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_Lin_SubFromD_cython, 1609, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(0, 1609, __pyx_L1_error)
1610: double[:,::1] VPoly,
+1611: DX=None, DY=None, DZ=None,
values[4] = ((PyObject *)Py_None);
values[5] = ((PyObject *)Py_None);
values[6] = ((PyObject *)Py_None);
+1612: double DIn=0., VIn=None,
values[8] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_XMinMax)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromD_cython", 0, 4, 10, 1); __PYX_ERR(0, 1609, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dX)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromD_cython", 0, 4, 10, 2); __PYX_ERR(0, 1609, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromD_cython", 0, 4, 10, 3); __PYX_ERR(0, 1609, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DX);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DY);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DZ);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_Lin_SubFromD_cython") < 0)) __PYX_ERR(0, 1609, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_XMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_XMinMax.memview)) __PYX_ERR(0, 1609, __pyx_L3_error)
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1609, __pyx_L3_error)
__pyx_v_dX = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dX == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1609, __pyx_L3_error)
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 1610, __pyx_L3_error)
__pyx_v_DX = values[4];
__pyx_v_DY = values[5];
__pyx_v_DZ = values[6];
if (values[7]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1612, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[8];
if (values[9]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1613, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__56;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromD_cython", 0, 4, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1609, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Lin_SubFromD_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_40_Ves_Smesh_Lin_SubFromD_cython(__pyx_self, __pyx_v_XMinMax, __pyx_v_dL, __pyx_v_dX, __pyx_v_VPoly, __pyx_v_DX, __pyx_v_DY, __pyx_v_DZ, __pyx_v_DIn, __pyx_v_VIn, __pyx_v_margin);
+1613: double margin=_VSMALL):
__pyx_k__56 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1614: """Return the desired surfacic submesh indicated by the limits (DX,DY,DZ),
1615: for the desired resolution (dX,dL) """
1616: cdef np.ndarray[double,ndim=1] X, Y0, Z0
1617: cdef double dXr, dY0r, dZ0r
+1618: cdef int NY0, NZ0, Y0n, Z0n, NX, Xn, Ln, NR0, Inter=1
__pyx_v_Inter = 1;
1619: cdef np.ndarray[double,ndim=2] Pts, PtsCross, VPbis
1620: cdef np.ndarray[double,ndim=1] dS, dLr, Rref
1621: cdef np.ndarray[long,ndim=1] indX, indY0, indZ0, indL, NL, ind
1622:
1623: # Preformat
1624: # Adjust limits
+1625: InterX, DX = _check_DLvsLMinMax(XMinMax,DX)
__pyx_t_2.__pyx_n = 1; __pyx_t_2.DL = __pyx_v_DX; __pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03__check_DLvsLMinMax(__pyx_v_XMinMax, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1625, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 1625, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1625, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_v_InterX = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_DX, __pyx_t_4); __pyx_t_4 = 0;
+1626: InterY, DY = _check_DLvsLMinMax(np.array([np.min(VPoly[0,:]),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_min); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1626, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_4 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_2.__pyx_n = 1; __pyx_t_2.DL = __pyx_v_DY; __pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03__check_DLvsLMinMax(__pyx_t_8, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1626, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_7)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_9 = __pyx_t_6(__pyx_t_7); if (unlikely(!__pyx_t_9)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(__pyx_t_9); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_7), 2) < 0) __PYX_ERR(0, 1626, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1626, __pyx_L1_error) __pyx_L6_unpacking_done:; } /* … */ __pyx_v_InterY = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_DY, __pyx_t_9); __pyx_t_9 = 0;
+1627: np.max(VPoly[0,:])]), DY)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_max); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1627, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_7 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_10, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_5); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1628: InterZ, DZ = _check_DLvsLMinMax(np.array([np.min(VPoly[1,:]),
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1628, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_7); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); __pyx_t_9 = 0; __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(__pyx_t_1, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_2.__pyx_n = 1; __pyx_t_2.DL = __pyx_v_DZ; __pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03__check_DLvsLMinMax(__pyx_t_8, &__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1628, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_3 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); #else __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_3); index = 1; __pyx_t_5 = __pyx_t_6(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_5); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_4), 2) < 0) __PYX_ERR(0, 1628, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1628, __pyx_L1_error) __pyx_L8_unpacking_done:; } /* … */ __pyx_v_InterZ = __pyx_t_3; __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_DZ, __pyx_t_5); __pyx_t_5 = 0;
+1629: np.max(VPoly[1,:])]), DZ)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1629, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1630:
+1631: if InterX==1 and InterY==1 and InterZ==1:
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_InterX, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { } else { __pyx_t_11 = __pyx_t_12; goto __pyx_L10_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_InterY, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { } else { __pyx_t_11 = __pyx_t_12; goto __pyx_L10_bool_binop_done; } __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_InterZ, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1631, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = __pyx_t_12; __pyx_L10_bool_binop_done:; if (__pyx_t_11) { /* … */ goto __pyx_L9; }
1632:
1633: # Get the mesh for the faces
+1634: Y0, dY0r,\
if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1634, __pyx_L1_error) __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1634, __pyx_L1_error) __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_16 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer, (PyObject*)__pyx_v_Y0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_Y0.diminfo[0].strides = __pyx_pybuffernd_Y0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Y0.diminfo[0].shape = __pyx_pybuffernd_Y0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1634, __pyx_L1_error) } __pyx_t_16 = 0; __pyx_v_Y0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __pyx_v_dY0r = __pyx_t_14; __pyx_t_21 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indY0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_indY0.diminfo[0].strides = __pyx_pybuffernd_indY0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indY0.diminfo[0].shape = __pyx_pybuffernd_indY0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1635, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_indY0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_v_NY0 = __pyx_t_15;
+1635: indY0, NY0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[0,:]),
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_min); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1635, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_3 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_7); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_7, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_4); __pyx_t_5 = 0; __pyx_t_4 = 0; /* … */ __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { PyObject* sequence = __pyx_t_5; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1634, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_10 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_7 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_7); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_10,&__pyx_t_1,&__pyx_t_7}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_10,&__pyx_t_1,&__pyx_t_7}; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_6(__pyx_t_3); if (unlikely(!item)) goto __pyx_L13_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_3), 4) < 0) __PYX_ERR(0, 1634, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L14_unpacking_done; __pyx_L13_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1634, __pyx_L1_error) __pyx_L14_unpacking_done:; }
+1636: np.max(VPoly[0,:])]),
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_max); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1636, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_9 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_7 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_13, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1637: dL, DL=DY, Lim=True,
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* … */ __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_DL, __pyx_v_DY) < 0) __PYX_ERR(0, 1637, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1637, __pyx_L1_error)
+1638: margin=margin)
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_margin, __pyx_t_5) < 0) __PYX_ERR(0, 1637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1639: Z0, dZ0r,\
if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1639, __pyx_L1_error) __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1639, __pyx_L1_error) __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1639, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_16 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_v_Z0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_Z0.diminfo[0].strides = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Z0.diminfo[0].shape = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1639, __pyx_L1_error) } __pyx_t_16 = 0; __pyx_v_Z0 = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0; __pyx_v_dZ0r = __pyx_t_14; __pyx_t_21 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_indZ0.diminfo[0].strides = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ0.diminfo[0].shape = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1640, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_indZ0 = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __pyx_v_NZ0 = __pyx_t_15;
+1640: indZ0, NZ0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[1,:]),
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1640, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_3, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_9); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* … */ __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_10); __pyx_t_7 = 0; __pyx_t_10 = 0; /* … */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1640, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { PyObject* sequence = __pyx_t_7; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1639, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_10 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); __pyx_t_5 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_9,&__pyx_t_5,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1639, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_10,&__pyx_t_9,&__pyx_t_5,&__pyx_t_3}; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1639, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_6(__pyx_t_1); if (unlikely(!item)) goto __pyx_L15_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 4) < 0) __PYX_ERR(0, 1639, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L16_unpacking_done; __pyx_L15_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1639, __pyx_L1_error) __pyx_L16_unpacking_done:; }
+1641: np.max(VPoly[1,:])]),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_8.data = __pyx_v_VPoly.data; __pyx_t_8.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_8, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1641, __pyx_L1_error) __pyx_t_8.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_8.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_8.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_8.suboffsets[0] = -1; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_t_8, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL; __pyx_t_13 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_13, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_4); __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1642: dL, DL=DZ, Lim=True,
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); /* … */ __pyx_t_10 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_DL, __pyx_v_DZ) < 0) __PYX_ERR(0, 1642, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1642, __pyx_L1_error)
+1643: margin=margin)
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_margin, __pyx_t_7) < 0) __PYX_ERR(0, 1642, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1644: Y0n, Z0n = len(Y0), len(Z0)
__pyx_t_22 = PyObject_Length(((PyObject *)__pyx_v_Y0)); if (unlikely(__pyx_t_22 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1644, __pyx_L1_error) __pyx_t_23 = PyObject_Length(((PyObject *)__pyx_v_Z0)); if (unlikely(__pyx_t_23 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1644, __pyx_L1_error) __pyx_v_Y0n = __pyx_t_22; __pyx_v_Z0n = __pyx_t_23;
1645:
1646: # Get the actual R and Z resolutions and mesh elements
+1647: X, dXr, indX, NX = _Ves_mesh_dlfromL_cython(XMinMax, dX, DL=DX,
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_XMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dX); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_5); __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_DL, __pyx_v_DX) < 0) __PYX_ERR(0, 1647, __pyx_L1_error) /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1647, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_10 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_5 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); __pyx_t_7 = PyList_GET_ITEM(sequence, 2); __pyx_t_10 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_10); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_5,&__pyx_t_9,&__pyx_t_7,&__pyx_t_10}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_5,&__pyx_t_9,&__pyx_t_7,&__pyx_t_10}; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_6(__pyx_t_1); if (unlikely(!item)) goto __pyx_L17_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 4) < 0) __PYX_ERR(0, 1647, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L18_unpacking_done; __pyx_L17_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1647, __pyx_L1_error) __pyx_L18_unpacking_done:; } if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1647, __pyx_L1_error) __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1647, __pyx_L1_error) __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_10); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_16 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_t_16, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1647, __pyx_L1_error) } __pyx_t_16 = 0; __pyx_v_X = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __pyx_v_dXr = __pyx_t_14; __pyx_t_21 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer); __pyx_t_17 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_17 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_v_indX, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_indX.diminfo[0].strides = __pyx_pybuffernd_indX.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indX.diminfo[0].shape = __pyx_pybuffernd_indX.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 1647, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_indX = ((PyArrayObject *)__pyx_t_7); __pyx_t_7 = 0; __pyx_v_NX = __pyx_t_15;
+1648: Lim=True, margin=margin)
if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1647, __pyx_L1_error) __pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1648, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 1647, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1649: Xn = len(X)
__pyx_t_23 = PyObject_Length(((PyObject *)__pyx_v_X)); if (unlikely(__pyx_t_23 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1649, __pyx_L1_error) __pyx_v_Xn = __pyx_t_23;
+1650: PtsCross, dLr, indL,\
if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1650, __pyx_L1_error) if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1650, __pyx_L1_error) if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1650, __pyx_L1_error) if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1650, __pyx_L1_error) if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1650, __pyx_L1_error) if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1650, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1650, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_PtsCross = ((PyArrayObject *)__pyx_t_7); __pyx_t_7 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1650, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0; __pyx_t_21 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_v_indL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_indL.diminfo[0].strides = __pyx_pybuffernd_indL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indL.diminfo[0].shape = __pyx_pybuffernd_indL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1650, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_indL = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __pyx_t_21 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1651, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1651, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_24 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1651, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1651: NL, Rref, VPbis = _Ves_Smesh_Cross(VPoly, dL, D1=None, D2=None,
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ves_Smesh_Cross); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); __pyx_t_10 = 0; __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_D1, Py_None) < 0) __PYX_ERR(0, 1651, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_D2, Py_None) < 0) __PYX_ERR(0, 1651, __pyx_L1_error) /* … */ __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) { PyObject* sequence = __pyx_t_10; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1650, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_7 = PyList_GET_ITEM(sequence, 0); __pyx_t_9 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); __pyx_t_5 = PyList_GET_ITEM(sequence, 3); __pyx_t_1 = PyList_GET_ITEM(sequence, 4); __pyx_t_4 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_7,&__pyx_t_9,&__pyx_t_3,&__pyx_t_5,&__pyx_t_1,&__pyx_t_4}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1650, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_7,&__pyx_t_9,&__pyx_t_3,&__pyx_t_5,&__pyx_t_1,&__pyx_t_4}; __pyx_t_13 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_13)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_6(__pyx_t_13); if (unlikely(!item)) goto __pyx_L19_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_13), 6) < 0) __PYX_ERR(0, 1650, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; goto __pyx_L20_unpacking_done; __pyx_L19_unpacking_failed:; __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1650, __pyx_L1_error) __pyx_L20_unpacking_done:; }
+1652: margin=margin, DIn=DIn, VIn=VIn)
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_margin, __pyx_t_10) < 0) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_DIn, __pyx_t_10) < 0) __PYX_ERR(0, 1651, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_VIn, __pyx_v_VIn) < 0) __PYX_ERR(0, 1651, __pyx_L1_error)
+1653: NR0 = Rref.size
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_Rref), __pyx_n_s_size); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_10); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1653, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_NR0 = __pyx_t_15;
+1654: indin = np.ones((PtsCross.shape[1],),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_Py_intptr_t((__pyx_v_PtsCross->dimensions[1])); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 1654, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1654, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_indin = __pyx_t_5; __pyx_t_5 = 0;
+1655: if DY is not None:
__pyx_t_11 = (__pyx_v_DY != Py_None);
__pyx_t_12 = (__pyx_t_11 != 0);
if (__pyx_t_12) {
/* … */
}
+1656: if DY[0] is not None:
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_DY, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = (__pyx_t_5 != Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { /* … */ }
+1657: indin = indin & (PtsCross[0,:]>=DY[0])
__pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__36); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DY, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_GE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1657, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_And(__pyx_v_indin, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_1); __pyx_t_1 = 0;
+1658: if DY[1] is not None:
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DY, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = (__pyx_t_1 != Py_None); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { /* … */ }
+1659: indin = indin & (PtsCross[0,:]<=DY[1])
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__36); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_DY, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_And(__pyx_v_indin, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_10); __pyx_t_10 = 0;
+1660: if DZ is not None:
__pyx_t_12 = (__pyx_v_DZ != Py_None);
__pyx_t_11 = (__pyx_t_12 != 0);
if (__pyx_t_11) {
/* … */
}
+1661: if DZ[0] is not None:
__pyx_t_10 = __Pyx_GetItemInt(__pyx_v_DZ, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = (__pyx_t_10 != Py_None); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { /* … */ }
+1662: indin = indin & (PtsCross[1,:]>=DZ[0])
__pyx_t_10 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_DZ, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyObject_RichCompare(__pyx_t_10, __pyx_t_5, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1662, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_And(__pyx_v_indin, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_5); __pyx_t_5 = 0;
+1663: if DZ[1] is not None:
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_DZ, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = (__pyx_t_5 != Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_11 = (__pyx_t_12 != 0); if (__pyx_t_11) { /* … */ }
+1664: indin = indin & (PtsCross[1,:]<=DZ[1])
__pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_DZ, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_LE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_And(__pyx_v_indin, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_1); __pyx_t_1 = 0;
1665: PtsCross, dLr,\
+1666: indL, Rref = PtsCross[:,indin], dLr[indin], indL[indin], Rref[indin]
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_indin); __pyx_t_10 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1666, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), __pyx_v_indin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1666, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_indL), __pyx_v_indin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1666, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Rref), __pyx_v_indin); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1666, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1666, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1665, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_PtsCross, ((PyArrayObject *)__pyx_t_10)); __pyx_t_10 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1665, __pyx_L1_error) } __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_dLr, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; __pyx_t_21 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_v_indL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_indL.diminfo[0].strides = __pyx_pybuffernd_indL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indL.diminfo[0].shape = __pyx_pybuffernd_indL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1666, __pyx_L1_error) } __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_indL, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1666, __pyx_L1_error) } __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_Rref, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+1667: Ln = indin.sum()
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1667, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_Ln = __pyx_t_15;
1668: # Agregating
+1669: Pts = np.array([np.repeat(X,Ln),
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_repeat); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_X), __pyx_t_10}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_X), __pyx_t_10}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_X)); __Pyx_GIVEREF(((PyObject *)__pyx_v_X)); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_15, ((PyObject *)__pyx_v_X)); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_15, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_9 = PyList_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_10); __pyx_t_5 = 0; __pyx_t_3 = 0; __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_10, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1669, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1669, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1670: np.tile(PtsCross[0,:],Xn),
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_tile); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__36); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_Xn); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_13 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_7, __pyx_t_9}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_7, __pyx_t_9}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_26 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_15, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_15, __pyx_t_9); __pyx_t_7 = 0; __pyx_t_9 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_26, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1670, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1671: np.tile(PtsCross[1,:],Xn)])
__Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_tile); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_tuple__42); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_Xn); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_13 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_13)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_13); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_26, __pyx_t_7}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_t_26, __pyx_t_7}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_27 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); if (__pyx_t_13) { __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_13); __pyx_t_13 = NULL; } __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_15, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_15, __pyx_t_7); __pyx_t_26 = 0; __pyx_t_7 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_27, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1671, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1672: ind = NY0*NZ0 + np.repeat(indX*NR0,Ln) + np.tile(indL,Xn)
__pyx_t_4 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_repeat); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_NR0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyNumber_Multiply(((PyObject *)__pyx_v_indX), __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_9}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_9}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_27 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_15, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_15, __pyx_t_9); __pyx_t_3 = 0; __pyx_t_9 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tile); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Xn); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_9 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_27))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_27); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_27, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_27)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_indL), __pyx_t_4}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) { PyObject *__pyx_temp[3] = {__pyx_t_9, ((PyObject *)__pyx_v_indL), __pyx_t_4}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_9) { __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __pyx_t_9 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indL)); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_15, ((PyObject *)__pyx_v_indL)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_15, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = PyNumber_Add(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_27) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_27, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1672, __pyx_L1_error) __pyx_t_21 = ((PyArrayObject *)__pyx_t_27); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1672, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_27); __pyx_t_27 = 0;
+1673: dS = np.tile(dLr*dXr,Xn)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tile); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyNumber_Multiply(((PyObject *)__pyx_v_dLr), __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Xn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_1}; __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_1}; __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else #endif { __pyx_t_9 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); if (__pyx_t_4) { __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL; } __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_15, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_15, __pyx_t_1); __pyx_t_3 = 0; __pyx_t_1 = 0; __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_9, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!(likely(((__pyx_t_27) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_27, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1673, __pyx_L1_error) __pyx_t_25 = ((PyArrayObject *)__pyx_t_27); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1673, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_27); __pyx_t_27 = 0;
+1674: if DX is None or DX[0] is None:
__pyx_t_12 = (__pyx_v_DX == Py_None);
__pyx_t_28 = (__pyx_t_12 != 0);
if (!__pyx_t_28) {
} else {
__pyx_t_11 = __pyx_t_28;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_27 = __Pyx_GetItemInt(__pyx_v_DX, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1674, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__pyx_t_28 = (__pyx_t_27 == Py_None);
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
__pyx_t_12 = (__pyx_t_28 != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L28_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+1675: pts = np.array([(XMinMax[0]+DIn)*np.ones((Y0n*Z0n,)),
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_29 = 0; __pyx_t_10 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_XMinMax.data) + __pyx_t_29)) ))) + __pyx_v_DIn)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_Y0n * __pyx_v_Z0n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_10 = PyList_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_10, 2, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_27 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_5, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_pts = __pyx_t_27; __pyx_t_27 = 0;
+1676: np.tile(Y0,Z0n),
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_tile); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_Z0n); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_Y0), __pyx_t_10}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_Y0), __pyx_t_10}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_Y0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Y0)); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_15, ((PyObject *)__pyx_v_Y0)); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_15, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1677: np.repeat(Z0,Y0n)])
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_repeat); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_Y0n); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_Z0), __pyx_t_7}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_Z0), __pyx_t_7}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_26 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_Z0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Z0)); PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_15, ((PyObject *)__pyx_v_Z0)); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_15, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_26, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1678: iind = NY0*np.repeat(indZ0,Y0n) + np.tile(indY0,Z0n)
__pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_NY0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_repeat); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_Y0n); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_1 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_indZ0), __pyx_t_10}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_1, ((PyObject *)__pyx_v_indZ0), __pyx_t_10}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_4 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indZ0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indZ0)); PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_15, ((PyObject *)__pyx_v_indZ0)); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_15, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_27, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_n_s_np); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_tile); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_Z0n); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_10 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_10, ((PyObject *)__pyx_v_indY0), __pyx_t_27}; __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_10, ((PyObject *)__pyx_v_indY0), __pyx_t_27}; __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } else #endif { __pyx_t_1 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indY0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indY0)); PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_15, ((PyObject *)__pyx_v_indY0)); __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_15, __pyx_t_27); __pyx_t_27 = 0; __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1678, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_iind = __pyx_t_4; __pyx_t_4 = 0;
+1679: indin = Path(VPoly.T).contains_points(pts[1:,:].T, transform=None,
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_Path); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_30 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_30, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_30) == 0)) __PYX_ERR(0, 1679, __pyx_L1_error) __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_30, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_30, 1); __pyx_t_30.memview = NULL; __pyx_t_30.data = NULL; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__35); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_T); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 1679, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 1679, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_1); __pyx_t_1 = 0;
1680: radius=0.0)
+1681: if np.any(indin):
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_any); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_indin) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_indin); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1681, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { /* … */ }
+1682: pts = pts[:,indin].reshape((3,1)) if indin.sum()==1\
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_11) { __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_indin); __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_reshape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_t_5; __pyx_t_5 = 0; } else {
+1683: else pts[:,indin]
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_indin); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; } __Pyx_DECREF_SET(__pyx_v_pts, __pyx_t_1); __pyx_t_1 = 0;
+1684: Pts = np.concatenate((pts,Pts),axis=1)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_pts); __Pyx_GIVEREF(__pyx_v_pts); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_pts); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_Pts)); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 1684, __pyx_L1_error) __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1684, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1684, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_9)); __pyx_t_9 = 0;
+1685: ind = np.concatenate((iind[indin], ind))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_iind, __pyx_v_indin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_ind)); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1685, __pyx_L1_error) __pyx_t_21 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1685, __pyx_L1_error) } __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_9)); __pyx_t_9 = 0;
+1686: dS = np.concatenate((dY0r*dZ0r*np.ones((indin.sum(),)),dS))
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble((__pyx_v_dY0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_n_s_np); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_ones); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); } } __pyx_t_27 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_26); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = PyTuple_New(1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_1 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_27, __pyx_t_26) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_26); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_10); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_dS)); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_9 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1686, __pyx_L1_error) __pyx_t_25 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1686, __pyx_L1_error) } __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_dS, ((PyArrayObject *)__pyx_t_9)); __pyx_t_9 = 0;
+1687: if DX is None or DX[1] is None:
__pyx_t_12 = (__pyx_v_DX == Py_None);
__pyx_t_28 = (__pyx_t_12 != 0);
if (!__pyx_t_28) {
} else {
__pyx_t_11 = __pyx_t_28;
goto __pyx_L32_bool_binop_done;
}
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_DX, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1687, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_28 = (__pyx_t_9 == Py_None);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_12 = (__pyx_t_28 != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L32_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+1688: pts = np.array([(XMinMax[1]-DIn)*np.ones((Y0n*Z0n,)),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_31 = 1; __pyx_t_4 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_XMinMax.data) + __pyx_t_31)) ))) - __pyx_v_DIn)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_Y0n * __pyx_v_Z0n)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_27 = PyTuple_New(1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_26))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); } } __pyx_t_10 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_26, __pyx_t_5, __pyx_t_27) : __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_t_27); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* … */ __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_26); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_27); PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_27); __pyx_t_26 = 0; __pyx_t_10 = 0; __pyx_t_27 = 0; __pyx_t_27 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_9 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_27, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, __pyx_t_9); __pyx_t_9 = 0;
+1689: np.tile(Y0,Z0n),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_tile); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Z0n); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_27))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_27); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_27, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_27)) { PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_Y0), __pyx_t_4}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) { PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_Y0), __pyx_t_4}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } else #endif { __pyx_t_7 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_Y0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Y0)); PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_15, ((PyObject *)__pyx_v_Y0)); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_15, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1689, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+1690: np.repeat(Z0,Y0n)])
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_repeat); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_Y0n); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_Z0), __pyx_t_7}; __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_5, ((PyObject *)__pyx_v_Z0), __pyx_t_7}; __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_5) { __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_Z0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Z0)); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_15, ((PyObject *)__pyx_v_Z0)); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_15, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1690, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1691: iind = NY0*NZ0 + NX*NR0 + NY0*np.repeat(indZ0,Y0n) +\
__pyx_t_9 = __Pyx_PyInt_From_int(((__pyx_v_NY0 * __pyx_v_NZ0) + (__pyx_v_NX * __pyx_v_NR0))); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_NY0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_n_s_np); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_repeat); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __Pyx_PyInt_From_int(__pyx_v_Y0n); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_26 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_26)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_26); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_26, ((PyObject *)__pyx_v_indZ0), __pyx_t_27}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_26, ((PyObject *)__pyx_v_indZ0), __pyx_t_27}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } else #endif { __pyx_t_3 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (__pyx_t_26) { __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_26); __pyx_t_26 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indZ0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indZ0)); PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_15, ((PyObject *)__pyx_v_indZ0)); __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_15, __pyx_t_27); __pyx_t_27 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* … */ __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_iind, __pyx_t_1); __pyx_t_1 = 0;
+1692: np.tile(indY0,Z0n)
__Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_tile); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_Z0n); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = NULL; __pyx_t_15 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_15 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_indY0), __pyx_t_9}; __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_indY0), __pyx_t_9}; __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_15, 2+__pyx_t_15); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } else #endif { __pyx_t_27 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_indY0)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indY0)); PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_15, ((PyObject *)__pyx_v_indY0)); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_15, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_27, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1692, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1693: indin = Path(VPoly.T).contains_points(pts[1:,:].T,
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_Path); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_30 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_30, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_30) == 0)) __PYX_ERR(0, 1693, __pyx_L1_error) __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_t_30, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_30, 1); __pyx_t_30.memview = NULL; __pyx_t_30.data = NULL; __pyx_t_27 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_1 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_27, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_contains_points); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_tuple__35); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF_SET(__pyx_v_indin, __pyx_t_27); __pyx_t_27 = 0;
+1694: transform=None,
__pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 1694, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 1694, __pyx_L1_error)
1695: radius=0.0)
+1696: if np.any(indin):
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_any); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_27 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_indin) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_indin); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1696, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1696, __pyx_L1_error) __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; if (__pyx_t_11) { /* … */ }
+1697: pts = pts[:,indin].reshape((3,1)) if indin.sum()==1\
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_11) { __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_indin); __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_reshape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_10, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_27 = __pyx_t_4; __pyx_t_4 = 0; } else {
+1698: else pts[:,indin]
__pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indin); __Pyx_GIVEREF(__pyx_v_indin); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_indin); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_27 = __pyx_t_1; __pyx_t_1 = 0; } __Pyx_DECREF_SET(__pyx_v_pts, __pyx_t_27); __pyx_t_27 = 0;
+1699: Pts = np.concatenate((Pts,pts),axis=1)
__Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_n_s_np); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = PyTuple_New(2); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_27, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(__pyx_v_pts); __Pyx_GIVEREF(__pyx_v_pts); PyTuple_SET_ITEM(__pyx_t_27, 1, __pyx_v_pts); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); if (PyDict_SetItem(__pyx_t_27, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 1699, __pyx_L1_error) __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, __pyx_t_27); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1699, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1699, __pyx_L1_error) } __pyx_t_24 = 0; __Pyx_DECREF_SET(__pyx_v_Pts, ((PyArrayObject *)__pyx_t_10)); __pyx_t_10 = 0;
+1700: ind = np.concatenate((ind,iind[indin]))
__Pyx_GetModuleGlobalName(__pyx_t_27, __pyx_n_s_np); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_v_iind, __pyx_v_indin); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_27)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_27); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_10 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_27, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_1); __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1700, __pyx_L1_error) __pyx_t_21 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1700, __pyx_L1_error) } __pyx_t_21 = 0; __Pyx_DECREF_SET(__pyx_v_ind, ((PyArrayObject *)__pyx_t_10)); __pyx_t_10 = 0;
+1701: dS = np.concatenate((dS,dY0r*dZ0r*np.ones((indin.sum(),))))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble((__pyx_v_dY0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_indin, __pyx_n_s_sum); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); } } __pyx_t_9 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_26); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = PyTuple_New(1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_27 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_26) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_26); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_27); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; __pyx_t_27 = PyTuple_New(2); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_27, 0, ((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_27, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_10 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_27) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_27); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1701, __pyx_L1_error) __pyx_t_25 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1701, __pyx_L1_error) } __pyx_t_25 = 0; __Pyx_DECREF_SET(__pyx_v_dS, ((PyArrayObject *)__pyx_t_10)); __pyx_t_10 = 0;
1702:
1703: else:
+1704: Pts, dS, ind,\
/*else*/ {
+1705: NL, dLr, Rref = np.ones((3,0)), np.ones((0,)),\
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_27))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_27); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_27, function); } } __pyx_t_10 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_27, __pyx_t_1, __pyx_tuple__50) : __Pyx_PyObject_CallOneArg(__pyx_t_27, __pyx_tuple__50); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0; if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_27 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 1705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_27); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_27) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_27, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1705, __pyx_L1_error)
+1706: np.ones((0,),dtype=int), np.ones((0,),dtype=int),\
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1706, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__54, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 1706, __pyx_L1_error) __pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__54, __pyx_t_3); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_26) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_26, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1706, __pyx_L1_error)
+1707: np.ones((0,)), np.ones((0,))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_1, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_9 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_tuple__51) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_tuple__51); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1707, __pyx_L1_error) __pyx_t_24 = ((PyArrayObject *)__pyx_t_10); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1704, __pyx_L1_error) } __pyx_t_24 = 0; __pyx_v_Pts = ((PyArrayObject *)__pyx_t_10); __pyx_t_10 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_27); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1704, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_27); __pyx_t_27 = 0; __pyx_t_21 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1704, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_ind = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __pyx_t_21 = ((PyArrayObject *)__pyx_t_26); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_21, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1705, __pyx_L1_error) } __pyx_t_21 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_26); __pyx_t_26 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18); } __pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1705, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __pyx_t_25 = ((PyArrayObject *)__pyx_t_9); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_15 < 0)) { PyErr_Fetch(&__pyx_t_18, &__pyx_t_19, &__pyx_t_20); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_18); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_20); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_18, __pyx_t_19, __pyx_t_20); } __pyx_t_18 = __pyx_t_19 = __pyx_t_20 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1705, __pyx_L1_error) } __pyx_t_25 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_9); __pyx_t_9 = 0;
+1708: dXr, dY0r, dZ0r, VPbis = 0., 0., 0., np.ones((3,0))
__pyx_t_14 = 0.;
__pyx_t_32 = 0.;
__pyx_t_33 = 0.;
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_26))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_26);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_26, function);
}
}
__pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_26, __pyx_t_3, __pyx_tuple__50) : __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_tuple__50);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1708, __pyx_L1_error)
__pyx_v_dXr = __pyx_t_14;
__pyx_v_dY0r = __pyx_t_32;
__pyx_v_dZ0r = __pyx_t_33;
__pyx_t_24 = ((PyArrayObject *)__pyx_t_9);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__pyx_t_15 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_24, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_15 < 0)) {
PyErr_Fetch(&__pyx_t_20, &__pyx_t_19, &__pyx_t_18);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_20); Py_XDECREF(__pyx_t_19); Py_XDECREF(__pyx_t_18);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_20, __pyx_t_19, __pyx_t_18);
}
__pyx_t_20 = __pyx_t_19 = __pyx_t_18 = 0;
}
__pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1708, __pyx_L1_error)
}
__pyx_t_24 = 0;
__pyx_v_VPbis = ((PyArrayObject *)__pyx_t_9);
__pyx_t_9 = 0;
}
__pyx_L9:;
1709:
+1710: return Pts, dS, ind, NL, dLr, Rref, dXr, dY0r, dZ0r, VPbis
__Pyx_XDECREF(__pyx_r); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_26 = PyFloat_FromDouble(__pyx_v_dY0r); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 1710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_dZ0r); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(((PyObject *)__pyx_v_ind)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind)); PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_ind)); __Pyx_INCREF(((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_NL)); PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_NL)); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_4, 4, ((PyObject *)__pyx_v_dLr)); __Pyx_INCREF(((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Rref)); PyTuple_SET_ITEM(__pyx_t_4, 5, ((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 6, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_4, 7, __pyx_t_26); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 8, __pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_VPbis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_VPbis)); PyTuple_SET_ITEM(__pyx_t_4, 9, ((PyObject *)__pyx_v_VPbis)); __pyx_t_9 = 0; __pyx_t_26 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
1711:
1712:
1713:
1714: @cython.cdivision(True)
1715: @cython.wraparound(False)
1716: @cython.boundscheck(False)
+1717: def _Ves_Smesh_Lin_SubFromInd_cython(double[::1] XMinMax, double dL, double dX,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_43_Ves_Smesh_Lin_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_42_Ves_Smesh_Lin_SubFromInd_cython[] = " Return the desired surfacic submesh indicated by ind, for the desired resolution (dX,dL) ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_43_Ves_Smesh_Lin_SubFromInd_cython = {"_Ves_Smesh_Lin_SubFromInd_cython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_43_Ves_Smesh_Lin_SubFromInd_cython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_42_Ves_Smesh_Lin_SubFromInd_cython};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_43_Ves_Smesh_Lin_SubFromInd_cython(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_XMinMax = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_dL;
double __pyx_v_dX;
__Pyx_memviewslice __pyx_v_VPoly = { 0, 0, { 0 }, { 0 }, { 0 } };
PyArrayObject *__pyx_v_ind = 0;
double __pyx_v_DIn;
PyObject *__pyx_v_VIn = 0;
double __pyx_v_margin;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Lin_SubFromInd_cython (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_XMinMax,&__pyx_n_s_dL,&__pyx_n_s_dX,&__pyx_n_s_VPoly,&__pyx_n_s_ind,&__pyx_n_s_DIn,&__pyx_n_s_VIn,&__pyx_n_s_margin,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_42_Ves_Smesh_Lin_SubFromInd_cython(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_XMinMax, double __pyx_v_dL, double __pyx_v_dX, __Pyx_memviewslice __pyx_v_VPoly, PyArrayObject *__pyx_v_ind, double __pyx_v_DIn, PyObject *__pyx_v_VIn, double __pyx_v_margin) {
double __pyx_v_dXr;
double __pyx_v_dY0r;
double __pyx_v_dZ0r;
int __pyx_v_NX;
int __pyx_v_NY0;
int __pyx_v_NZ0;
int __pyx_v_Ln;
int __pyx_v_nii;
PyObject *__pyx_v_LPts = 0;
PyObject *__pyx_v_LdS = 0;
PyArrayObject *__pyx_v_Pts = 0;
PyArrayObject *__pyx_v_PtsCross = 0;
PyArrayObject *__pyx_v_VPbis = 0;
PyArrayObject *__pyx_v_X = 0;
PyArrayObject *__pyx_v_Y0 = 0;
PyArrayObject *__pyx_v_Z0 = 0;
PyArrayObject *__pyx_v_dS = 0;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_Rref = 0;
PyArrayObject *__pyx_v_indX = 0;
PyArrayObject *__pyx_v_indY0 = 0;
PyArrayObject *__pyx_v_indZ0 = 0;
PyArrayObject *__pyx_v_indL = 0;
PyArrayObject *__pyx_v_NL = 0;
PyArrayObject *__pyx_v_ii = 0;
CYTHON_UNUSED PyObject *__pyx_v_bla = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_NL;
__Pyx_Buffer __pyx_pybuffer_NL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Pts;
__Pyx_Buffer __pyx_pybuffer_Pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PtsCross;
__Pyx_Buffer __pyx_pybuffer_PtsCross;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Rref;
__Pyx_Buffer __pyx_pybuffer_Rref;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPbis;
__Pyx_Buffer __pyx_pybuffer_VPbis;
__Pyx_LocalBuf_ND __pyx_pybuffernd_X;
__Pyx_Buffer __pyx_pybuffer_X;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Y0;
__Pyx_Buffer __pyx_pybuffer_Y0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Z0;
__Pyx_Buffer __pyx_pybuffer_Z0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dS;
__Pyx_Buffer __pyx_pybuffer_dS;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ii;
__Pyx_Buffer __pyx_pybuffer_ii;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ind;
__Pyx_Buffer __pyx_pybuffer_ind;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indL;
__Pyx_Buffer __pyx_pybuffer_indL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indX;
__Pyx_Buffer __pyx_pybuffer_indX;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indY0;
__Pyx_Buffer __pyx_pybuffer_indY0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indZ0;
__Pyx_Buffer __pyx_pybuffer_indZ0;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("_Ves_Smesh_Lin_SubFromInd_cython", 0);
__pyx_pybuffer_Pts.pybuffer.buf = NULL;
__pyx_pybuffer_Pts.refcount = 0;
__pyx_pybuffernd_Pts.data = NULL;
__pyx_pybuffernd_Pts.rcbuffer = &__pyx_pybuffer_Pts;
__pyx_pybuffer_PtsCross.pybuffer.buf = NULL;
__pyx_pybuffer_PtsCross.refcount = 0;
__pyx_pybuffernd_PtsCross.data = NULL;
__pyx_pybuffernd_PtsCross.rcbuffer = &__pyx_pybuffer_PtsCross;
__pyx_pybuffer_VPbis.pybuffer.buf = NULL;
__pyx_pybuffer_VPbis.refcount = 0;
__pyx_pybuffernd_VPbis.data = NULL;
__pyx_pybuffernd_VPbis.rcbuffer = &__pyx_pybuffer_VPbis;
__pyx_pybuffer_X.pybuffer.buf = NULL;
__pyx_pybuffer_X.refcount = 0;
__pyx_pybuffernd_X.data = NULL;
__pyx_pybuffernd_X.rcbuffer = &__pyx_pybuffer_X;
__pyx_pybuffer_Y0.pybuffer.buf = NULL;
__pyx_pybuffer_Y0.refcount = 0;
__pyx_pybuffernd_Y0.data = NULL;
__pyx_pybuffernd_Y0.rcbuffer = &__pyx_pybuffer_Y0;
__pyx_pybuffer_Z0.pybuffer.buf = NULL;
__pyx_pybuffer_Z0.refcount = 0;
__pyx_pybuffernd_Z0.data = NULL;
__pyx_pybuffernd_Z0.rcbuffer = &__pyx_pybuffer_Z0;
__pyx_pybuffer_dS.pybuffer.buf = NULL;
__pyx_pybuffer_dS.refcount = 0;
__pyx_pybuffernd_dS.data = NULL;
__pyx_pybuffernd_dS.rcbuffer = &__pyx_pybuffer_dS;
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_Rref.pybuffer.buf = NULL;
__pyx_pybuffer_Rref.refcount = 0;
__pyx_pybuffernd_Rref.data = NULL;
__pyx_pybuffernd_Rref.rcbuffer = &__pyx_pybuffer_Rref;
__pyx_pybuffer_indX.pybuffer.buf = NULL;
__pyx_pybuffer_indX.refcount = 0;
__pyx_pybuffernd_indX.data = NULL;
__pyx_pybuffernd_indX.rcbuffer = &__pyx_pybuffer_indX;
__pyx_pybuffer_indY0.pybuffer.buf = NULL;
__pyx_pybuffer_indY0.refcount = 0;
__pyx_pybuffernd_indY0.data = NULL;
__pyx_pybuffernd_indY0.rcbuffer = &__pyx_pybuffer_indY0;
__pyx_pybuffer_indZ0.pybuffer.buf = NULL;
__pyx_pybuffer_indZ0.refcount = 0;
__pyx_pybuffernd_indZ0.data = NULL;
__pyx_pybuffernd_indZ0.rcbuffer = &__pyx_pybuffer_indZ0;
__pyx_pybuffer_indL.pybuffer.buf = NULL;
__pyx_pybuffer_indL.refcount = 0;
__pyx_pybuffernd_indL.data = NULL;
__pyx_pybuffernd_indL.rcbuffer = &__pyx_pybuffer_indL;
__pyx_pybuffer_NL.pybuffer.buf = NULL;
__pyx_pybuffer_NL.refcount = 0;
__pyx_pybuffernd_NL.data = NULL;
__pyx_pybuffernd_NL.rcbuffer = &__pyx_pybuffer_NL;
__pyx_pybuffer_ii.pybuffer.buf = NULL;
__pyx_pybuffer_ii.refcount = 0;
__pyx_pybuffernd_ii.data = NULL;
__pyx_pybuffernd_ii.rcbuffer = &__pyx_pybuffer_ii;
__pyx_pybuffer_ind.pybuffer.buf = NULL;
__pyx_pybuffer_ind.refcount = 0;
__pyx_pybuffernd_ind.data = NULL;
__pyx_pybuffernd_ind.rcbuffer = &__pyx_pybuffer_ind;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ind.rcbuffer->pybuffer, (PyObject*)__pyx_v_ind, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 1717, __pyx_L1_error)
}
__pyx_pybuffernd_ind.diminfo[0].strides = __pyx_pybuffernd_ind.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ind.diminfo[0].shape = __pyx_pybuffernd_ind.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ii.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Lin_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ii.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ind.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_LPts);
__Pyx_XDECREF(__pyx_v_LdS);
__Pyx_XDECREF((PyObject *)__pyx_v_Pts);
__Pyx_XDECREF((PyObject *)__pyx_v_PtsCross);
__Pyx_XDECREF((PyObject *)__pyx_v_VPbis);
__Pyx_XDECREF((PyObject *)__pyx_v_X);
__Pyx_XDECREF((PyObject *)__pyx_v_Y0);
__Pyx_XDECREF((PyObject *)__pyx_v_Z0);
__Pyx_XDECREF((PyObject *)__pyx_v_dS);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_Rref);
__Pyx_XDECREF((PyObject *)__pyx_v_indX);
__Pyx_XDECREF((PyObject *)__pyx_v_indY0);
__Pyx_XDECREF((PyObject *)__pyx_v_indZ0);
__Pyx_XDECREF((PyObject *)__pyx_v_indL);
__Pyx_XDECREF((PyObject *)__pyx_v_NL);
__Pyx_XDECREF((PyObject *)__pyx_v_ii);
__Pyx_XDECREF(__pyx_v_bla);
__PYX_XDEC_MEMVIEW(&__pyx_v_XMinMax, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPoly, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__200 = PyTuple_Pack(35, __pyx_n_s_XMinMax, __pyx_n_s_dL, __pyx_n_s_dX, __pyx_n_s_VPoly, __pyx_n_s_ind, __pyx_n_s_DIn, __pyx_n_s_VIn, __pyx_n_s_margin, __pyx_n_s_dXr, __pyx_n_s_dY0r, __pyx_n_s_dZ0r, __pyx_n_s_NX, __pyx_n_s_NY0, __pyx_n_s_NZ0, __pyx_n_s_Ln, __pyx_n_s_NR0, __pyx_n_s_nii, __pyx_n_s_LPts, __pyx_n_s_LdS, __pyx_n_s_Pts, __pyx_n_s_PtsCross, __pyx_n_s_VPbis, __pyx_n_s_X, __pyx_n_s_Y0, __pyx_n_s_Z0, __pyx_n_s_dS, __pyx_n_s_dLr, __pyx_n_s_Rref, __pyx_n_s_indX, __pyx_n_s_indY0, __pyx_n_s_indZ0, __pyx_n_s_indL, __pyx_n_s_NL, __pyx_n_s_ii, __pyx_n_s_bla); if (unlikely(!__pyx_tuple__200)) __PYX_ERR(0, 1717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__200);
__Pyx_GIVEREF(__pyx_tuple__200);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_43_Ves_Smesh_Lin_SubFromInd_cython, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Ves_Smesh_Lin_SubFromInd_cython, __pyx_t_1) < 0) __PYX_ERR(0, 1717, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(8, 0, 35, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__200, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Ves_Smesh_Lin_SubFromInd_cython, 1717, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(0, 1717, __pyx_L1_error)
1718: double[:,::1] VPoly, np.ndarray[long,ndim=1] ind,
+1719: double DIn=0., VIn=None, double margin=_VSMALL):
values[6] = ((PyObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_XMinMax)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromInd_cython", 0, 5, 8, 1); __PYX_ERR(0, 1717, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dX)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromInd_cython", 0, 5, 8, 2); __PYX_ERR(0, 1717, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromInd_cython", 0, 5, 8, 3); __PYX_ERR(0, 1717, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ind)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromInd_cython", 0, 5, 8, 4); __PYX_ERR(0, 1717, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DIn);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_margin);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_Ves_Smesh_Lin_SubFromInd_cython") < 0)) __PYX_ERR(0, 1717, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_XMinMax = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_XMinMax.memview)) __PYX_ERR(0, 1717, __pyx_L3_error)
__pyx_v_dL = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dL == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1717, __pyx_L3_error)
__pyx_v_dX = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dX == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1717, __pyx_L3_error)
__pyx_v_VPoly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_VPoly.memview)) __PYX_ERR(0, 1718, __pyx_L3_error)
__pyx_v_ind = ((PyArrayObject *)values[4]);
if (values[5]) {
__pyx_v_DIn = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_DIn == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1719, __pyx_L3_error)
} else {
__pyx_v_DIn = ((double)0.);
}
__pyx_v_VIn = values[6];
if (values[7]) {
__pyx_v_margin = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_margin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1719, __pyx_L3_error)
} else {
__pyx_v_margin = __pyx_k__57;
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("_Ves_Smesh_Lin_SubFromInd_cython", 0, 5, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1717, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03._Ves_Smesh_Lin_SubFromInd_cython", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ind), __pyx_ptype_5numpy_ndarray, 1, "ind", 0))) __PYX_ERR(0, 1718, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_42_Ves_Smesh_Lin_SubFromInd_cython(__pyx_self, __pyx_v_XMinMax, __pyx_v_dL, __pyx_v_dX, __pyx_v_VPoly, __pyx_v_ind, __pyx_v_DIn, __pyx_v_VIn, __pyx_v_margin);
/* … */
__pyx_k__57 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1720: " Return the desired surfacic submesh indicated by ind, for the desired resolution (dX,dL) "
1721: cdef double dXr, dY0r, dZ0r
1722: cdef int NX, NY0, NZ0, Ln, NR0, nii
1723: cdef list LPts, LdS
1724: cdef np.ndarray[double,ndim=2] Pts, PtsCross, VPbis
1725: cdef np.ndarray[double,ndim=1] X, Y0, Z0, dS, dLr, Rref
1726: cdef np.ndarray[long,ndim=1] indX, indY0, indZ0, indL, NL, ii
1727:
1728: # Get the mesh for the faces
+1729: Y0, dY0r, bla, NY0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[0,:]),np.max(VPoly[0,:])]), dL, DL=None, Lim=True, margin=margin)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7.data = __pyx_v_VPoly.data; __pyx_t_7.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_7, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1729, __pyx_L1_error) __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_7.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_7.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_7.suboffsets[0] = -1; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_7, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_max); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_7.data = __pyx_v_VPoly.data; __pyx_t_7.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_7, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1729, __pyx_L1_error) __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_7.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_7.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_7.suboffsets[0] = -1; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_7, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __pyx_t_3 = 0; __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 1729, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1729, __pyx_L1_error) __pyx_t_2 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_margin, __pyx_t_2) < 0) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { PyObject* sequence = __pyx_t_2; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1729, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_4 = PyList_GET_ITEM(sequence, 0); __pyx_t_8 = PyList_GET_ITEM(sequence, 1); __pyx_t_1 = PyList_GET_ITEM(sequence, 2); __pyx_t_6 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_8,&__pyx_t_1,&__pyx_t_6}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_4,&__pyx_t_8,&__pyx_t_1,&__pyx_t_6}; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_10(__pyx_t_3); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_3), 4) < 0) __PYX_ERR(0, 1729, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1729, __pyx_L1_error) __pyx_L4_unpacking_done:; } if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1729, __pyx_L1_error) __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Y0.rcbuffer->pybuffer, (PyObject*)__pyx_v_Y0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_Y0.diminfo[0].strides = __pyx_pybuffernd_Y0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Y0.diminfo[0].shape = __pyx_pybuffernd_Y0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1729, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_Y0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __pyx_v_dY0r = __pyx_t_11; __pyx_v_bla = __pyx_t_1; __pyx_t_1 = 0; __pyx_v_NY0 = __pyx_t_12;
+1730: Z0, dZ0r, bla, NZ0 = _Ves_mesh_dlfromL_cython(np.array([np.min(VPoly[1,:]),np.max(VPoly[1,:])]), dL, DL=None, Lim=True, margin=margin)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7.data = __pyx_v_VPoly.data; __pyx_t_7.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_7, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1730, __pyx_L1_error) __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_7.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_7.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_7.suboffsets[0] = -1; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_t_7, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7.data = __pyx_v_VPoly.data; __pyx_t_7.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_7, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 1730, __pyx_L1_error) __pyx_t_7.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_7.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_7.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_7.suboffsets[0] = -1; __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_t_7, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_8); __pyx_t_6 = 0; __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 1730, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1730, __pyx_L1_error) __pyx_t_6 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_margin, __pyx_t_6) < 0) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { PyObject* sequence = __pyx_t_6; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1730, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_8 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_3 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_5,&__pyx_t_2,&__pyx_t_3}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_8,&__pyx_t_5,&__pyx_t_2,&__pyx_t_3}; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_10(__pyx_t_1); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_1), 4) < 0) __PYX_ERR(0, 1730, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L6_unpacking_done; __pyx_L5_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1730, __pyx_L1_error) __pyx_L6_unpacking_done:; } if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1730, __pyx_L1_error) __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Z0.rcbuffer->pybuffer, (PyObject*)__pyx_v_Z0, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_Z0.diminfo[0].strides = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Z0.diminfo[0].shape = __pyx_pybuffernd_Z0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1730, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_Z0 = ((PyArrayObject *)__pyx_t_8); __pyx_t_8 = 0; __pyx_v_dZ0r = __pyx_t_11; __Pyx_DECREF_SET(__pyx_v_bla, __pyx_t_2); __pyx_t_2 = 0; __pyx_v_NZ0 = __pyx_t_12;
1731:
1732: # Get the actual R and Z resolutions and mesh elements
+1733: X, dXr, bla, NX = _Ves_mesh_dlfromL_cython(XMinMax, dX, DL=None, Lim=True, margin=margin)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_Ves_mesh_dlfromL_cython); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_XMinMax, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dX); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_DL, Py_None) < 0) __PYX_ERR(0, 1733, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_Lim, Py_True) < 0) __PYX_ERR(0, 1733, __pyx_L1_error) __pyx_t_3 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_margin, __pyx_t_3) < 0) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 4)) { if (size > 4) __Pyx_RaiseTooManyValuesError(4); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1733, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 3); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_6 = PyList_GET_ITEM(sequence, 2); __pyx_t_8 = PyList_GET_ITEM(sequence, 3); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_8); #else { Py_ssize_t i; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_5,&__pyx_t_6,&__pyx_t_8}; for (i=0; i < 4; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; PyObject** temps[4] = {&__pyx_t_2,&__pyx_t_5,&__pyx_t_6,&__pyx_t_8}; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; for (index=0; index < 4; index++) { PyObject* item = __pyx_t_10(__pyx_t_1); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_1), 4) < 0) __PYX_ERR(0, 1733, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1733, __pyx_L1_error) __pyx_L8_unpacking_done:; } if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1733, __pyx_L1_error) __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1733, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_13 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_X.rcbuffer->pybuffer); __pyx_t_14 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_14 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_X.rcbuffer->pybuffer, (PyObject*)__pyx_v_X, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_X.diminfo[0].strides = __pyx_pybuffernd_X.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_X.diminfo[0].shape = __pyx_pybuffernd_X.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1733, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_X = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dXr = __pyx_t_11; __Pyx_DECREF_SET(__pyx_v_bla, __pyx_t_6); __pyx_t_6 = 0; __pyx_v_NX = __pyx_t_12;
+1734: PtsCross, dLr, bla, NL, Rref, VPbis = _Ves_Smesh_Cross(VPoly, dL, D1=None, D2=None, margin=margin, DIn=DIn, VIn=VIn)
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ves_Smesh_Cross); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_v_VPoly, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_dL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __pyx_t_8 = 0; __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_D1, Py_None) < 0) __PYX_ERR(0, 1734, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_D2, Py_None) < 0) __PYX_ERR(0, 1734, __pyx_L1_error) __pyx_t_8 = PyFloat_FromDouble(__pyx_v_margin); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_margin, __pyx_t_8) < 0) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyFloat_FromDouble(__pyx_v_DIn); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_DIn, __pyx_t_8) < 0) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_VIn, __pyx_v_VIn) < 0) __PYX_ERR(0, 1734, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { PyObject* sequence = __pyx_t_8; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 1734, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_6 = PyList_GET_ITEM(sequence, 0); __pyx_t_5 = PyList_GET_ITEM(sequence, 1); __pyx_t_3 = PyList_GET_ITEM(sequence, 2); __pyx_t_2 = PyList_GET_ITEM(sequence, 3); __pyx_t_1 = PyList_GET_ITEM(sequence, 4); __pyx_t_4 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_4); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_6,&__pyx_t_5,&__pyx_t_3,&__pyx_t_2,&__pyx_t_1,&__pyx_t_4}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_6,&__pyx_t_5,&__pyx_t_3,&__pyx_t_2,&__pyx_t_1,&__pyx_t_4}; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L9_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 6) < 0) __PYX_ERR(0, 1734, __pyx_L1_error) __pyx_t_10 = NULL; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; goto __pyx_L10_unpacking_done; __pyx_L9_unpacking_failed:; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_10 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 1734, __pyx_L1_error) __pyx_L10_unpacking_done:; } if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1734, __pyx_L1_error) if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1734, __pyx_L1_error) if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1734, __pyx_L1_error) if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1734, __pyx_L1_error) if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1734, __pyx_L1_error) __pyx_t_18 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PtsCross.rcbuffer->pybuffer, (PyObject*)__pyx_v_PtsCross, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_PtsCross.diminfo[0].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PtsCross.diminfo[0].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PtsCross.diminfo[1].strides = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PtsCross.diminfo[1].shape = __pyx_pybuffernd_PtsCross.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_PtsCross = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_13 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_v_dLr, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF_SET(__pyx_v_bla, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_19 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_NL.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_NL.rcbuffer->pybuffer, (PyObject*)__pyx_v_NL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_NL.diminfo[0].strides = __pyx_pybuffernd_NL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_NL.diminfo[0].shape = __pyx_pybuffernd_NL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error) } __pyx_t_19 = 0; __pyx_v_NL = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; __pyx_t_13 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Rref.rcbuffer->pybuffer, (PyObject*)__pyx_v_Rref, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_Rref.diminfo[0].strides = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Rref.diminfo[0].shape = __pyx_pybuffernd_Rref.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_Rref = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __pyx_t_18 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPbis.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPbis, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_VPbis.diminfo[0].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPbis.diminfo[0].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPbis.diminfo[1].strides = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPbis.diminfo[1].shape = __pyx_pybuffernd_VPbis.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error) } __pyx_t_18 = 0; __pyx_v_VPbis = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1735: Ln = PtsCross.shape[1]
__pyx_v_Ln = (__pyx_v_PtsCross->dimensions[1]);
1736:
+1737: LPts, LdS = [], []
__pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1737, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_v_LPts = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; __pyx_v_LdS = ((PyObject*)__pyx_t_4); __pyx_t_4 = 0;
1738: # First face
+1739: ii = (ind<NY0*NZ0).nonzero()[0]
__pyx_t_8 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1739, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1739, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ii.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ii.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ii.rcbuffer->pybuffer, (PyObject*)__pyx_v_ii, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_ii.diminfo[0].strides = __pyx_pybuffernd_ii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ii.diminfo[0].shape = __pyx_pybuffernd_ii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1739, __pyx_L1_error) } __pyx_t_19 = 0; __pyx_v_ii = ((PyArrayObject *)__pyx_t_8); __pyx_t_8 = 0;
+1740: nii = len(ii)
__pyx_t_20 = PyObject_Length(((PyObject *)__pyx_v_ii)); if (unlikely(__pyx_t_20 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1740, __pyx_L1_error) __pyx_v_nii = __pyx_t_20;
+1741: if nii>0:
__pyx_t_21 = ((__pyx_v_nii > 0) != 0);
if (__pyx_t_21) {
/* … */
}
+1742: indZ0 = ind[ii] // NY0
__pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_ii)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_NY0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyNumber_FloorDivide(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1742, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_indZ0.diminfo[0].strides = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ0.diminfo[0].shape = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1742, __pyx_L1_error) } __pyx_t_19 = 0; __pyx_v_indZ0 = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+1743: indY0 = (ind[ii]-indZ0*NY0)
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_ii)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_NY0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = PyNumber_Multiply(((PyObject *)__pyx_v_indZ0), __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1743, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1743, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indY0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_indY0.diminfo[0].strides = __pyx_pybuffernd_indY0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indY0.diminfo[0].shape = __pyx_pybuffernd_indY0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1743, __pyx_L1_error) } __pyx_t_19 = 0; __pyx_v_indY0 = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+1744: if nii==1:
__pyx_t_21 = ((__pyx_v_nii == 1) != 0);
if (__pyx_t_21) {
/* … */
goto __pyx_L12;
}
+1745: LPts.append( np.array([[XMinMax[0]+DIn], [Y0[indY0]], [Z0[indZ0]]]) )
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_22 = 0; __pyx_t_8 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_XMinMax.data) + __pyx_t_22)) ))) + __pyx_v_DIn)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Y0), ((PyObject *)__pyx_v_indY0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_4); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1745, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
1746: else:
+1747: LPts.append( np.array([(XMinMax[0]+DIn)*np.ones((nii,)), Y0[indY0], Z0[indZ0]]) )
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_24 = 0;
__pyx_t_1 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_XMinMax.data) + __pyx_t_24)) ))) + __pyx_v_DIn)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
__pyx_t_3 = 0;
__pyx_t_3 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_3)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6);
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Y0), ((PyObject *)__pyx_v_indY0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_2);
PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_5);
PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
__pyx_t_2 = 0;
__pyx_t_5 = 0;
__pyx_t_1 = 0;
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_8, function);
}
}
__pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_4); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1747, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
}
__pyx_L12:;
+1748: LdS.append( dY0r*dZ0r*np.ones((nii,)) )
__pyx_t_4 = PyFloat_FromDouble((__pyx_v_dY0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_nii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_8 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1748, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1749:
1750: # Cylinder
+1751: ii = ((ind>=NY0*NZ0) & (ind<NY0*NZ0+NX*Ln)).nonzero()[0]
__pyx_t_8 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_8, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(((__pyx_v_NY0 * __pyx_v_NZ0) + (__pyx_v_NX * __pyx_v_Ln))); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_And(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1751, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1751, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ii.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ii.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ii.rcbuffer->pybuffer, (PyObject*)__pyx_v_ii, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_ii.diminfo[0].strides = __pyx_pybuffernd_ii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ii.diminfo[0].shape = __pyx_pybuffernd_ii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1751, __pyx_L1_error) } __pyx_t_19 = 0; __Pyx_DECREF_SET(__pyx_v_ii, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0;
+1752: nii = len(ii)
__pyx_t_20 = PyObject_Length(((PyObject *)__pyx_v_ii)); if (unlikely(__pyx_t_20 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1752, __pyx_L1_error) __pyx_v_nii = __pyx_t_20;
+1753: if nii>0:
__pyx_t_21 = ((__pyx_v_nii > 0) != 0);
if (__pyx_t_21) {
/* … */
}
+1754: indX = (ind[ii]-NY0*NZ0) // Ln
__pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_ii)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyNumber_Subtract(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_FloorDivide(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1754, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1754, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indX.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indX.rcbuffer->pybuffer, (PyObject*)__pyx_v_indX, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_indX.diminfo[0].strides = __pyx_pybuffernd_indX.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indX.diminfo[0].shape = __pyx_pybuffernd_indX.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1754, __pyx_L1_error) } __pyx_t_19 = 0; __pyx_v_indX = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
+1755: indL = (ind[ii]-NY0*NZ0 - Ln*indX)
__pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_ii)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyNumber_Subtract(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Ln); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, ((PyObject *)__pyx_v_indX)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1755, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indL.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indL.rcbuffer->pybuffer, (PyObject*)__pyx_v_indL, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_indL.diminfo[0].strides = __pyx_pybuffernd_indL.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indL.diminfo[0].shape = __pyx_pybuffernd_indL.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1755, __pyx_L1_error) } __pyx_t_19 = 0; __pyx_v_indL = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+1756: if nii==1:
__pyx_t_21 = ((__pyx_v_nii == 1) != 0);
if (__pyx_t_21) {
/* … */
goto __pyx_L14;
}
+1757: LPts.append( np.array([[X[indX]], [PtsCross[0,indL]], [PtsCross[1,indL]]]) )
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_array); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_X), ((PyObject *)__pyx_v_indX)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); __Pyx_INCREF(((PyObject *)__pyx_v_indL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indL)); PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_indL)); __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1); __Pyx_INCREF(((PyObject *)__pyx_v_indL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_indL)); PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_indL)); __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyList_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_2, 2, __pyx_t_6); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1757, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1758: LdS.append( np.array([dXr*dLr[indL]]) )
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), ((PyObject *)__pyx_v_indL)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1758, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1759: else:
+1760: LPts.append( np.array([X[indX], PtsCross[0,indL], PtsCross[1,indL]]) )
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_X), ((PyObject *)__pyx_v_indX)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(__pyx_int_0);
__Pyx_GIVEREF(__pyx_int_0);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0);
__Pyx_INCREF(((PyObject *)__pyx_v_indL));
__Pyx_GIVEREF(((PyObject *)__pyx_v_indL));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_indL));
__pyx_t_8 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_INCREF(__pyx_int_1);
__Pyx_GIVEREF(__pyx_int_1);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_1);
__Pyx_INCREF(((PyObject *)__pyx_v_indL));
__Pyx_GIVEREF(((PyObject *)__pyx_v_indL));
PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_indL));
__pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_PtsCross), __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyList_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_2);
PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_8);
PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_8);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
__pyx_t_2 = 0;
__pyx_t_8 = 0;
__pyx_t_4 = 0;
__pyx_t_4 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1760, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1761: LdS.append( dXr*dLr[indL] )
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_dLr), ((PyObject *)__pyx_v_indL)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1761, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_5); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1761, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __pyx_L14:;
1762:
1763: # End face
+1764: ii = (ind >= NY0*NZ0+NX*Ln).nonzero()[0]
__pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_NY0 * __pyx_v_NZ0) + (__pyx_v_NX * __pyx_v_Ln))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_v_ind), __pyx_t_6, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1764, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1764, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ii.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ii.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ii.rcbuffer->pybuffer, (PyObject*)__pyx_v_ii, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_ii.diminfo[0].strides = __pyx_pybuffernd_ii.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ii.diminfo[0].shape = __pyx_pybuffernd_ii.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1764, __pyx_L1_error) } __pyx_t_19 = 0; __Pyx_DECREF_SET(__pyx_v_ii, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+1765: nii = len(ii)
__pyx_t_20 = PyObject_Length(((PyObject *)__pyx_v_ii)); if (unlikely(__pyx_t_20 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1765, __pyx_L1_error) __pyx_v_nii = __pyx_t_20;
+1766: if nii>0:
__pyx_t_21 = ((__pyx_v_nii > 0) != 0);
if (__pyx_t_21) {
/* … */
}
+1767: indZ0 = (ind[ii]-NY0*NZ0-NX*Ln) // NY0
__pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_ii)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_Subtract(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_NX * __pyx_v_Ln)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_NY0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_FloorDivide(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1767, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indZ0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indZ0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_indZ0.diminfo[0].strides = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indZ0.diminfo[0].shape = __pyx_pybuffernd_indZ0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1767, __pyx_L1_error) } __pyx_t_19 = 0; __Pyx_XDECREF_SET(__pyx_v_indZ0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0;
+1768: indY0 = ind[ii]-NY0*NZ0-NX*Ln - NY0*indZ0
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_ind), ((PyObject *)__pyx_v_ii)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_NY0 * __pyx_v_NZ0)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int((__pyx_v_NX * __pyx_v_Ln)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_Subtract(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_NY0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyNumber_Multiply(__pyx_t_5, ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Subtract(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1768, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1768, __pyx_L1_error) __pyx_t_19 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer, (PyObject*)__pyx_t_19, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indY0.rcbuffer->pybuffer, (PyObject*)__pyx_v_indY0, &__Pyx_TypeInfo_long, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_indY0.diminfo[0].strides = __pyx_pybuffernd_indY0.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indY0.diminfo[0].shape = __pyx_pybuffernd_indY0.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1768, __pyx_L1_error) } __pyx_t_19 = 0; __Pyx_XDECREF_SET(__pyx_v_indY0, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0;
+1769: if nii==1:
__pyx_t_21 = ((__pyx_v_nii == 1) != 0);
if (__pyx_t_21) {
/* … */
goto __pyx_L16;
}
+1770: LPts.append( np.array([[XMinMax[1]-DIn], [Y0[indY0]], [Z0[indZ0]]]) )
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_25 = 1; __pyx_t_6 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_XMinMax.data) + __pyx_t_25)) ))) - __pyx_v_DIn)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Y0), ((PyObject *)__pyx_v_indY0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyList_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_8 = 0; __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_5); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1770, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
1771: else:
+1772: LPts.append( np.array([(XMinMax[1]-DIn)*np.ones((nii,)), Y0[indY0], Z0[indZ0]]) )
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_26 = 1;
__pyx_t_1 = PyFloat_FromDouble(((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_XMinMax.data) + __pyx_t_26)) ))) - __pyx_v_DIn)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nii); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Y0), ((PyObject *)__pyx_v_indY0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Z0), ((PyObject *)__pyx_v_indZ0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_2);
PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_1);
__pyx_t_4 = 0;
__pyx_t_2 = 0;
__pyx_t_1 = 0;
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
}
}
__pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_3);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LPts, __pyx_t_5); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1772, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
}
__pyx_L16:;
+1773: LdS.append( dY0r*dZ0r*np.ones((nii,)) )
__pyx_t_5 = PyFloat_FromDouble((__pyx_v_dY0r * __pyx_v_dZ0r)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_23 = __Pyx_PyList_Append(__pyx_v_LdS, __pyx_t_1); if (unlikely(__pyx_t_23 == ((int)-1))) __PYX_ERR(0, 1773, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
1774:
1775: # Format output
+1776: if len(LPts)==1:
__pyx_t_20 = PyList_GET_SIZE(__pyx_v_LPts); if (unlikely(__pyx_t_20 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1776, __pyx_L1_error) __pyx_t_21 = ((__pyx_t_20 == 1) != 0); if (__pyx_t_21) { /* … */ goto __pyx_L17; }
+1777: Pts, dS = LPts[0], LdS[0]
if (!(likely(((PyList_GET_ITEM(__pyx_v_LPts, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_LPts, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1777, __pyx_L1_error) __pyx_t_1 = PyList_GET_ITEM(__pyx_v_LPts, 0); __Pyx_INCREF(__pyx_t_1); if (!(likely(((PyList_GET_ITEM(__pyx_v_LdS, 0)) == Py_None) || likely(__Pyx_TypeTest(PyList_GET_ITEM(__pyx_v_LdS, 0), __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1777, __pyx_L1_error) __pyx_t_6 = PyList_GET_ITEM(__pyx_v_LdS, 0); __Pyx_INCREF(__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_1), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1777, __pyx_L1_error) } __pyx_v_Pts = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)((PyArrayObject *)__pyx_t_6), &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1777, __pyx_L1_error) } __pyx_v_dS = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
1778: else:
+1779: Pts = np.concatenate(tuple(LPts),axis=1)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyList_AsTuple(__pyx_v_LPts); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_int_1) < 0) __PYX_ERR(0, 1779, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1779, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1779, __pyx_L1_error)
__pyx_t_18 = ((PyArrayObject *)__pyx_t_2);
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer);
__pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_18, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack);
if (unlikely(__pyx_t_12 < 0)) {
PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15);
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_Pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) {
Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15);
__Pyx_RaiseBufferFallbackError();
} else {
PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15);
}
__pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0;
}
__pyx_pybuffernd_Pts.diminfo[0].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Pts.diminfo[0].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Pts.diminfo[1].strides = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Pts.diminfo[1].shape = __pyx_pybuffernd_Pts.rcbuffer->pybuffer.shape[1];
if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1779, __pyx_L1_error)
}
__pyx_t_18 = 0;
__pyx_v_Pts = ((PyArrayObject *)__pyx_t_2);
__pyx_t_2 = 0;
+1780: dS = np.concatenate(tuple(LdS))
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_concatenate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyList_AsTuple(__pyx_v_LdS); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 1780, __pyx_L1_error) __pyx_t_13 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dS.rcbuffer->pybuffer); __pyx_t_12 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_t_13, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_12 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dS.rcbuffer->pybuffer, (PyObject*)__pyx_v_dS, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_dS.diminfo[0].strides = __pyx_pybuffernd_dS.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dS.diminfo[0].shape = __pyx_pybuffernd_dS.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1780, __pyx_L1_error) } __pyx_t_13 = 0; __pyx_v_dS = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0; } __pyx_L17:;
1781:
+1782: return Pts, dS, NL, dLr, Rref, dXr, dY0r, dZ0r, VPbis
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dXr); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dY0r); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_dZ0r); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = PyTuple_New(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1782, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_Pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Pts)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Pts)); __Pyx_INCREF(((PyObject *)__pyx_v_dS)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dS)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_dS)); __Pyx_INCREF(((PyObject *)__pyx_v_NL)); __Pyx_GIVEREF(((PyObject *)__pyx_v_NL)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_NL)); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_dLr)); __Pyx_INCREF(((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Rref)); PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_Rref)); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 7, __pyx_t_6); __Pyx_INCREF(((PyObject *)__pyx_v_VPbis)); __Pyx_GIVEREF(((PyObject *)__pyx_v_VPbis)); PyTuple_SET_ITEM(__pyx_t_1, 8, ((PyObject *)__pyx_v_VPbis)); __pyx_t_2 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
1783:
1784:
1785:
1786:
1787: """
1788: ########################################################
1789: ########################################################
1790: ########################################################
1791: # LOS-specific
1792: ########################################################
1793: ########################################################
1794: ########################################################
1795: """
1796:
1797:
1798:
1799:
1800: ########################################################
1801: ########################################################
1802: # PIn POut
1803: ########################################################
1804:
1805:
1806: # =============================================================================
1807: # = Set of functions for Ray-tracing
1808: # =============================================================================
1809:
+1810: def LOS_Calc_PInOut_VesStruct(double[:, ::1] ray_orig,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_45LOS_Calc_PInOut_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_44LOS_Calc_PInOut_VesStruct[] = "\n Computes the entry and exit point of all provided LOS for the provided\n vessel polygon (toroidal or linear) with its associated structures.\n Return the normal vector at impact and the index of the impact segment\n\n Params\n ======\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS normalized direction vector\n ves_poly : (2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the Vessel\n ves_norm : (2, num_vertex-1) double array\n Normal vectors going \"inwards\" of the edges of the Polygon defined\n by ves_poly\n nstruct : int\n Total number of structures (counting each limited structure as one)\n ves_lims : array\n Contains the limits min and max of vessel\n lstruct_poly : list\n List of coordinates of the vertices of all structures on poloidal plane\n lstruct_lims : list\n List of limits of all structures\n lstruct_nlim : array of ints\n List of number of limits for all structures\n lstruct_norm : list\n List of coordinates of \"inwards\" normal vectors of the polygon of all\n the structures\n rmin : double\n Minimal radius of vessel to take into consideration\n eps_<val> : double\n Small value, acceptance of error\n vtype : string\n Type of vessel (\"Tor\" or \"Lin\")\n forbid : bool\n Should we forbid values behind vissible radius ? (see rmin)\n test : bool\n Should we run tests ?\n num_threads : int\n The num_threads argument indicates how many threads the team should\n consist of. If not given, OpenMP will decide how many threads to use.\n Typically this is the number of cores available on the machine.\n Returns\n ======\n coeff_inter_in : (num_los) array\n scalars level of \"in\" intersection of the LOS (if k=0 at origin)\n coeff_int""er_out : (num_los) array\n scalars level of \"out\" intersection of the LOS (if k=0 at origin)\n vperp_out : (3, num_los) array\n Coordinates of the normal vector of impact of the LOS (NaN if none)\n ind_inter_out : (3, num_los)\n Index of structure impacted by LOS: ind_inter_out[:,ind_los]=(i,j,k)\n where k is the index of edge impacted on the j-th sub structure of the\n structure number i. If the LOS impacted the vessel i=j=0\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_45LOS_Calc_PInOut_VesStruct = {"LOS_Calc_PInOut_VesStruct", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_45LOS_Calc_PInOut_VesStruct, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_44LOS_Calc_PInOut_VesStruct};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_45LOS_Calc_PInOut_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_ray_orig = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ray_vdir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ves_poly = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ves_norm = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_lstruct_nlim = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ves_lims = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_lstruct_polyx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_lstruct_polyy = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_lstruct_lims = 0;
__Pyx_memviewslice __pyx_v_lstruct_normx = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_lstruct_normy = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_lnvert = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_nstruct_tot;
int __pyx_v_nstruct_lim;
double __pyx_v_rmin;
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
double __pyx_v_eps_plane;
PyObject *__pyx_v_ves_type = 0;
int __pyx_v_forbid;
int __pyx_v_test;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_Calc_PInOut_VesStruct (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_ves_norm,&__pyx_n_s_lstruct_nlim,&__pyx_n_s_ves_lims,&__pyx_n_s_lstruct_polyx,&__pyx_n_s_lstruct_polyy,&__pyx_n_s_lstruct_lims,&__pyx_n_s_lstruct_normx,&__pyx_n_s_lstruct_normy,&__pyx_n_s_lnvert,&__pyx_n_s_nstruct_tot,&__pyx_n_s_nstruct_lim,&__pyx_n_s_rmin,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_forbid,&__pyx_n_s_test,&__pyx_n_s_num_threads,0};
PyObject* values[24] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_44LOS_Calc_PInOut_VesStruct(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_ray_orig, __Pyx_memviewslice __pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, __Pyx_memviewslice __pyx_v_ves_norm, __Pyx_memviewslice __pyx_v_lstruct_nlim, __Pyx_memviewslice __pyx_v_ves_lims, __Pyx_memviewslice __pyx_v_lstruct_polyx, __Pyx_memviewslice __pyx_v_lstruct_polyy, PyObject *__pyx_v_lstruct_lims, __Pyx_memviewslice __pyx_v_lstruct_normx, __Pyx_memviewslice __pyx_v_lstruct_normy, __Pyx_memviewslice __pyx_v_lnvert, int __pyx_v_nstruct_tot, int __pyx_v_nstruct_lim, double __pyx_v_rmin, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, int __pyx_v_forbid, int __pyx_v_test, int __pyx_v_num_threads) {
int __pyx_v_npts_poly;
int __pyx_v_num_los;
int __pyx_v_ind_struct;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_len_lim;
int __pyx_v_ind_min;
int __pyx_v_nvert;
double __pyx_v_Crit2_base;
double __pyx_v_lim_min;
double __pyx_v_lim_max;
double __pyx_v_rmin2;
PyObject *__pyx_v_error_message = 0;
int __pyx_v_forbidbis;
int __pyx_v_forbid0;
int __pyx_v_bool1;
int __pyx_v_bool2;
double *__pyx_v_lbounds;
double *__pyx_v_langles;
arrayobject *__pyx_v_vperp_out = 0;
arrayobject *__pyx_v_coeff_inter_in = 0;
arrayobject *__pyx_v_coeff_inter_out = 0;
arrayobject *__pyx_v_ind_inter_out = 0;
int *__pyx_v_llimits;
long *__pyx_v_lsz_lim;
int __pyx_v_llim_ves[1];
double __pyx_v_lbounds_ves[2];
double __pyx_v_lim_ves[2];
CYTHON_UNUSED int __pyx_v_are_limited;
PyObject *__pyx_v_lslim = NULL;
PyObject *__pyx_v_ee = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_Calc_PInOut_VesStruct", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__Pyx_XDECREF(__pyx_t_23);
__PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_27, 1);
__Pyx_XDECREF(__pyx_t_79);
__Pyx_XDECREF(__pyx_t_80);
__Pyx_AddTraceback("tofu.geom._GG03.LOS_Calc_PInOut_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_error_message);
__Pyx_XDECREF((PyObject *)__pyx_v_vperp_out);
__Pyx_XDECREF((PyObject *)__pyx_v_coeff_inter_in);
__Pyx_XDECREF((PyObject *)__pyx_v_coeff_inter_out);
__Pyx_XDECREF((PyObject *)__pyx_v_ind_inter_out);
__Pyx_XDECREF(__pyx_v_lslim);
__Pyx_XDECREF(__pyx_v_ee);
__PYX_XDEC_MEMVIEW(&__pyx_v_ray_orig, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ray_vdir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_poly, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_norm, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lstruct_nlim, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_lims, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lstruct_polyx, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lstruct_polyy, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lstruct_normx, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lstruct_normy, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lnvert, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__202 = PyTuple_Pack(56, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_ves_norm, __pyx_n_s_lstruct_nlim, __pyx_n_s_ves_lims, __pyx_n_s_lstruct_polyx, __pyx_n_s_lstruct_polyy, __pyx_n_s_lstruct_lims, __pyx_n_s_lstruct_normx, __pyx_n_s_lstruct_normy, __pyx_n_s_lnvert, __pyx_n_s_nstruct_tot, __pyx_n_s_nstruct_lim, __pyx_n_s_rmin, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_forbid, __pyx_n_s_test, __pyx_n_s_num_threads, __pyx_n_s_npts_poly, __pyx_n_s_num_los, __pyx_n_s_ind_struct, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_kk, __pyx_n_s_len_lim, __pyx_n_s_ind_min, __pyx_n_s_nvert, __pyx_n_s_Crit2_base, __pyx_n_s_lim_min, __pyx_n_s_lim_max, __pyx_n_s_rmin2, __pyx_n_s_error_message, __pyx_n_s_forbidbis, __pyx_n_s_forbid0, __pyx_n_s_bool1, __pyx_n_s_bool2, __pyx_n_s_lbounds, __pyx_n_s_langles, __pyx_n_s_vperp_out, __pyx_n_s_coeff_inter_in, __pyx_n_s_coeff_inter_out, __pyx_n_s_ind_inter_out, __pyx_n_s_llimits, __pyx_n_s_lsz_lim, __pyx_n_s_llim_ves, __pyx_n_s_lbounds_ves, __pyx_n_s_lim_ves, __pyx_n_s_are_limited, __pyx_n_s_lslim, __pyx_n_s_ee); if (unlikely(!__pyx_tuple__202)) __PYX_ERR(0, 1810, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__202);
__Pyx_GIVEREF(__pyx_tuple__202);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_45LOS_Calc_PInOut_VesStruct, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1810, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_Calc_PInOut_VesStruct, __pyx_t_1) < 0) __PYX_ERR(0, 1810, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(24, 0, 56, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__202, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_Calc_PInOut_VesStruct, 1810, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(0, 1810, __pyx_L1_error)
1811: double[:, ::1] ray_vdir,
1812: double[:, ::1] ves_poly,
1813: double[:, ::1] ves_norm,
+1814: long[::1] lstruct_nlim=None,
__pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 1814, __pyx_L1_error) __pyx_k__58 = __pyx_t_4; __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
+1815: double[::1] ves_lims=None,
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1815, __pyx_L1_error) __pyx_k__59 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+1816: double[::1] lstruct_polyx=None,
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1816, __pyx_L1_error) __pyx_k__60 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+1817: double[::1] lstruct_polyy=None,
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1817, __pyx_L1_error) __pyx_k__61 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+1818: list lstruct_lims=None,
values[8] = ((PyObject*)Py_None);
values[20] = ((PyObject*)__pyx_n_s_Tor);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
CYTHON_FALLTHROUGH;
case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
CYTHON_FALLTHROUGH;
case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
CYTHON_FALLTHROUGH;
case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
CYTHON_FALLTHROUGH;
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_PInOut_VesStruct", 0, 4, 24, 1); __PYX_ERR(0, 1810, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_PInOut_VesStruct", 0, 4, 24, 2); __PYX_ERR(0, 1810, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_norm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_PInOut_VesStruct", 0, 4, 24, 3); __PYX_ERR(0, 1810, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lstruct_nlim);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_lims);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lstruct_polyx);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lstruct_polyy);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lstruct_lims);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lstruct_normx);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lstruct_normy);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lnvert);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nstruct_tot);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nstruct_lim);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rmin);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[17] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 18:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[18] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 19:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[19] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 20:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[20] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 21:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_forbid);
if (value) { values[21] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 22:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_test);
if (value) { values[22] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 23:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[23] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_Calc_PInOut_VesStruct") < 0)) __PYX_ERR(0, 1810, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 24: values[23] = PyTuple_GET_ITEM(__pyx_args, 23);
CYTHON_FALLTHROUGH;
case 23: values[22] = PyTuple_GET_ITEM(__pyx_args, 22);
CYTHON_FALLTHROUGH;
case 22: values[21] = PyTuple_GET_ITEM(__pyx_args, 21);
CYTHON_FALLTHROUGH;
case 21: values[20] = PyTuple_GET_ITEM(__pyx_args, 20);
CYTHON_FALLTHROUGH;
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ray_orig = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ray_orig.memview)) __PYX_ERR(0, 1810, __pyx_L3_error)
__pyx_v_ray_vdir = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ray_vdir.memview)) __PYX_ERR(0, 1811, __pyx_L3_error)
__pyx_v_ves_poly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_poly.memview)) __PYX_ERR(0, 1812, __pyx_L3_error)
__pyx_v_ves_norm = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_norm.memview)) __PYX_ERR(0, 1813, __pyx_L3_error)
if (values[4]) {
__pyx_v_lstruct_nlim = __Pyx_PyObject_to_MemoryviewSlice_dc_long(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lstruct_nlim.memview)) __PYX_ERR(0, 1814, __pyx_L3_error)
} else {
__pyx_v_lstruct_nlim = __pyx_k__58;
__PYX_INC_MEMVIEW(&__pyx_v_lstruct_nlim, 1);
}
if (values[5]) {
__pyx_v_ves_lims = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_lims.memview)) __PYX_ERR(0, 1815, __pyx_L3_error)
} else {
__pyx_v_ves_lims = __pyx_k__59;
__PYX_INC_MEMVIEW(&__pyx_v_ves_lims, 1);
}
if (values[6]) {
__pyx_v_lstruct_polyx = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lstruct_polyx.memview)) __PYX_ERR(0, 1816, __pyx_L3_error)
} else {
__pyx_v_lstruct_polyx = __pyx_k__60;
__PYX_INC_MEMVIEW(&__pyx_v_lstruct_polyx, 1);
}
if (values[7]) {
__pyx_v_lstruct_polyy = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[7], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lstruct_polyy.memview)) __PYX_ERR(0, 1817, __pyx_L3_error)
} else {
__pyx_v_lstruct_polyy = __pyx_k__61;
__PYX_INC_MEMVIEW(&__pyx_v_lstruct_polyy, 1);
}
__pyx_v_lstruct_lims = ((PyObject*)values[8]);
if (values[9]) {
__pyx_v_lstruct_normx = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[9], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lstruct_normx.memview)) __PYX_ERR(0, 1819, __pyx_L3_error)
} else {
__pyx_v_lstruct_normx = __pyx_k__62;
__PYX_INC_MEMVIEW(&__pyx_v_lstruct_normx, 1);
}
if (values[10]) {
__pyx_v_lstruct_normy = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[10], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lstruct_normy.memview)) __PYX_ERR(0, 1820, __pyx_L3_error)
} else {
__pyx_v_lstruct_normy = __pyx_k__63;
__PYX_INC_MEMVIEW(&__pyx_v_lstruct_normy, 1);
}
if (values[11]) {
__pyx_v_lnvert = __Pyx_PyObject_to_MemoryviewSlice_dc_long(values[11], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lnvert.memview)) __PYX_ERR(0, 1821, __pyx_L3_error)
} else {
__pyx_v_lnvert = __pyx_k__64;
__PYX_INC_MEMVIEW(&__pyx_v_lnvert, 1);
}
if (values[12]) {
__pyx_v_nstruct_tot = __Pyx_PyInt_As_int(values[12]); if (unlikely((__pyx_v_nstruct_tot == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1822, __pyx_L3_error)
} else {
__pyx_v_nstruct_tot = ((int)0);
}
if (values[13]) {
__pyx_v_nstruct_lim = __Pyx_PyInt_As_int(values[13]); if (unlikely((__pyx_v_nstruct_lim == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1823, __pyx_L3_error)
} else {
__pyx_v_nstruct_lim = ((int)0);
}
if (values[14]) {
__pyx_v_rmin = __pyx_PyFloat_AsDouble(values[14]); if (unlikely((__pyx_v_rmin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1824, __pyx_L3_error)
} else {
__pyx_v_rmin = ((double)-1.0);
}
if (values[15]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[15]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__65;
}
if (values[16]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[16]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1825, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__66;
}
if (values[17]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[17]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1826, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__67;
}
if (values[18]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[18]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1826, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__68;
}
if (values[19]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[19]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1827, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__69;
}
__pyx_v_ves_type = ((PyObject*)values[20]);
if (values[21]) {
__pyx_v_forbid = __Pyx_PyObject_IsTrue(values[21]); if (unlikely((__pyx_v_forbid == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1828, __pyx_L3_error)
} else {
__pyx_v_forbid = ((int)1);
}
if (values[22]) {
__pyx_v_test = __Pyx_PyObject_IsTrue(values[22]); if (unlikely((__pyx_v_test == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1828, __pyx_L3_error)
} else {
__pyx_v_test = ((int)1);
}
if (values[23]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[23]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 1828, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_Calc_PInOut_VesStruct", 0, 4, 24, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1810, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_Calc_PInOut_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lstruct_lims), (&PyList_Type), 1, "lstruct_lims", 1))) __PYX_ERR(0, 1818, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 1827, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_44LOS_Calc_PInOut_VesStruct(__pyx_self, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_ves_norm, __pyx_v_lstruct_nlim, __pyx_v_ves_lims, __pyx_v_lstruct_polyx, __pyx_v_lstruct_polyy, __pyx_v_lstruct_lims, __pyx_v_lstruct_normx, __pyx_v_lstruct_normy, __pyx_v_lnvert, __pyx_v_nstruct_tot, __pyx_v_nstruct_lim, __pyx_v_rmin, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_forbid, __pyx_v_test, __pyx_v_num_threads);
+1819: double[::1] lstruct_normx=None,
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1819, __pyx_L1_error) __pyx_k__62 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+1820: double[::1] lstruct_normy=None,
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 1820, __pyx_L1_error) __pyx_k__63 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+1821: long[::1] lnvert=None,
__pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 1821, __pyx_L1_error) __pyx_k__64 = __pyx_t_4; __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
1822: int nstruct_tot=0,
1823: int nstruct_lim=0,
1824: double rmin=-1,
+1825: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__65 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__66 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+1826: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__67 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__68 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+1827: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__69 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
1828: bint forbid=1, bint test=1, int num_threads=16):
1829: """
1830: Computes the entry and exit point of all provided LOS for the provided
1831: vessel polygon (toroidal or linear) with its associated structures.
1832: Return the normal vector at impact and the index of the impact segment
1833:
1834: Params
1835: ======
1836: ray_orig : (3, num_los) double array
1837: LOS origin points coordinates
1838: ray_vdir : (3, num_los) double array
1839: LOS normalized direction vector
1840: ves_poly : (2, num_vertex) double array
1841: Coordinates of the vertices of the Polygon defining the 2D poloidal
1842: cut of the Vessel
1843: ves_norm : (2, num_vertex-1) double array
1844: Normal vectors going "inwards" of the edges of the Polygon defined
1845: by ves_poly
1846: nstruct : int
1847: Total number of structures (counting each limited structure as one)
1848: ves_lims : array
1849: Contains the limits min and max of vessel
1850: lstruct_poly : list
1851: List of coordinates of the vertices of all structures on poloidal plane
1852: lstruct_lims : list
1853: List of limits of all structures
1854: lstruct_nlim : array of ints
1855: List of number of limits for all structures
1856: lstruct_norm : list
1857: List of coordinates of "inwards" normal vectors of the polygon of all
1858: the structures
1859: rmin : double
1860: Minimal radius of vessel to take into consideration
1861: eps_<val> : double
1862: Small value, acceptance of error
1863: vtype : string
1864: Type of vessel ("Tor" or "Lin")
1865: forbid : bool
1866: Should we forbid values behind vissible radius ? (see rmin)
1867: test : bool
1868: Should we run tests ?
1869: num_threads : int
1870: The num_threads argument indicates how many threads the team should
1871: consist of. If not given, OpenMP will decide how many threads to use.
1872: Typically this is the number of cores available on the machine.
1873: Returns
1874: ======
1875: coeff_inter_in : (num_los) array
1876: scalars level of "in" intersection of the LOS (if k=0 at origin)
1877: coeff_inter_out : (num_los) array
1878: scalars level of "out" intersection of the LOS (if k=0 at origin)
1879: vperp_out : (3, num_los) array
1880: Coordinates of the normal vector of impact of the LOS (NaN if none)
1881: ind_inter_out : (3, num_los)
1882: Index of structure impacted by LOS: ind_inter_out[:,ind_los]=(i,j,k)
1883: where k is the index of edge impacted on the j-th sub structure of the
1884: structure number i. If the LOS impacted the vessel i=j=0
1885: """
+1886: cdef int npts_poly = ves_norm.shape[1]
__pyx_v_npts_poly = (__pyx_v_ves_norm.shape[1]);
+1887: cdef int num_los = ray_orig.shape[1]
__pyx_v_num_los = (__pyx_v_ray_orig.shape[1]);
+1888: cdef int ind_struct = 0
__pyx_v_ind_struct = 0;
1889: cdef int ii, jj, kk
1890: cdef int len_lim
1891: cdef int ind_min
1892: cdef int nvert
+1893: cdef double Crit2_base = eps_uz * eps_uz /400.
__pyx_v_Crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
+1894: cdef double lim_min = 0.
__pyx_v_lim_min = 0.;
+1895: cdef double lim_max = 0.
__pyx_v_lim_max = 0.;
+1896: cdef double rmin2 = 0.
__pyx_v_rmin2 = 0.;
1897: cdef str error_message
1898: cdef bint forbidbis, forbid0
1899: cdef bint bool1, bool2
+1900: cdef double *lbounds = <double *>malloc(nstruct_tot * 6 * sizeof(double))
__pyx_v_lbounds = ((double *)malloc(((__pyx_v_nstruct_tot * 6) * (sizeof(double)))));
+1901: cdef double *langles = <double *>malloc(nstruct_tot * 2 * sizeof(double))
__pyx_v_langles = ((double *)malloc(((__pyx_v_nstruct_tot * 2) * (sizeof(double)))));
+1902: cdef array vperp_out = clone(array('d'), num_los * 3, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), (__pyx_v_num_los * 3), 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_vperp_out = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__70 = PyTuple_Pack(1, __pyx_n_s_d); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(0, 1902, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__70); __Pyx_GIVEREF(__pyx_tuple__70);
+1903: cdef array coeff_inter_in = clone(array('d'), num_los, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), __pyx_v_num_los, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_coeff_inter_in = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
+1904: cdef array coeff_inter_out = clone(array('d'), num_los, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), __pyx_v_num_los, 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1904, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_coeff_inter_out = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
+1905: cdef array ind_inter_out = clone(array('i'), num_los * 3, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), (__pyx_v_num_los * 3), 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ind_inter_out = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__71 = PyTuple_Pack(1, __pyx_n_s_i); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(0, 1905, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__71); __Pyx_GIVEREF(__pyx_tuple__71);
+1906: cdef int *llimits = NULL
__pyx_v_llimits = NULL;
+1907: cdef long *lsz_lim = NULL
__pyx_v_lsz_lim = NULL;
1908: cdef int[1] llim_ves
1909: cdef double[2] lbounds_ves
1910: cdef double[2] lim_ves
1911:
1912: # == Testing inputs ========================================================
+1913: if test:
__pyx_t_3 = (__pyx_v_test != 0);
if (__pyx_t_3) {
/* … */
}
1914: error_message = "ray_orig and ray_vdir must have the same shape: "\
+1915: + "(3,) or (3,NL)!"
__pyx_t_1 = PyNumber_Add(__pyx_kp_s_ray_orig_and_ray_vdir_must_have, __pyx_kp_s_3_or_3_NL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_error_message = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+1916: assert tuple(ray_orig.shape) == tuple(ray_vdir.shape) and \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_carray_to_py_Py_ssize_t(__pyx_v_ray_orig.shape, 8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_carray_to_py_Py_ssize_t(__pyx_v_ray_vdir.shape, 8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1916, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L4_bool_binop_done;
}
+1917: ray_orig.shape[0] == 3, error_message
__pyx_t_5 = (((__pyx_v_ray_orig.shape[0]) == 3) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L4_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1916, __pyx_L1_error)
}
}
#endif
+1918: error_message = "ves_poly and ves_norm must have the same shape (2,NS)!"
__Pyx_INCREF(__pyx_kp_s_ves_poly_and_ves_norm_must_have); __Pyx_DECREF_SET(__pyx_v_error_message, __pyx_kp_s_ves_poly_and_ves_norm_must_have);
+1919: assert ves_poly.shape[0] == 2 and ves_norm.shape[0] == 2 and \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (((__pyx_v_ves_poly.shape[0]) == 2) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L6_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_ves_norm.shape[0]) == 2) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L6_bool_binop_done;
}
+1920: npts_poly == ves_poly.shape[1]-1, error_message
__pyx_t_5 = ((__pyx_v_npts_poly == ((__pyx_v_ves_poly.shape[1]) - 1)) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L6_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1919, __pyx_L1_error)
}
}
#endif
+1921: bool1 = lstruct_lims is None or len(lstruct_normy) == len(lstruct_normy)
__pyx_t_5 = (__pyx_v_lstruct_lims == ((PyObject*)Py_None));
__pyx_t_6 = (__pyx_t_5 != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L9_bool_binop_done;
}
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_normy);
__pyx_t_8 = __Pyx_MemoryView_Len(__pyx_v_lstruct_normy);
__pyx_t_6 = ((__pyx_t_7 == __pyx_t_8) != 0);
__pyx_t_3 = __pyx_t_6;
__pyx_L9_bool_binop_done:;
__pyx_v_bool1 = __pyx_t_3;
+1922: bool2 = lstruct_normx is None or len(lstruct_polyx) == len(lstruct_polyy)
__pyx_t_6 = ((((PyObject *) __pyx_v_lstruct_normx.memview) == Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_8 = __Pyx_MemoryView_Len(__pyx_v_lstruct_polyx);
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_polyy);
__pyx_t_6 = ((__pyx_t_8 == __pyx_t_7) != 0);
__pyx_t_3 = __pyx_t_6;
__pyx_L11_bool_binop_done:;
__pyx_v_bool2 = __pyx_t_3;
1923: error_message = "lstruct_poly, lstruct_lims, lstruct_norm must be None"\
+1924: + " or lists of same len!"
__pyx_t_1 = PyNumber_Add(__pyx_kp_s_lstruct_poly_lstruct_lims_lstruc, __pyx_kp_s_or_lists_of_same_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_error_message, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+1925: assert bool1 and bool2, error_message
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = (__pyx_v_bool1 != 0);
if (__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_6 = (__pyx_v_bool2 != 0);
__pyx_t_3 = __pyx_t_6;
__pyx_L13_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1925, __pyx_L1_error)
}
}
#endif
+1926: error_message = "[eps_uz,eps_vz,eps_a,eps_b] must be floats < 1.e-4!"
__Pyx_INCREF(__pyx_kp_s_eps_uz_eps_vz_eps_a_eps_b_must); __Pyx_DECREF_SET(__pyx_v_error_message, __pyx_kp_s_eps_uz_eps_vz_eps_a_eps_b_must);
+1927: assert all([ee < 1.e-4 for ee in [eps_uz, eps_a,
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_eps_uz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_eps_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__pyx_t_12 = PyTuple_New(5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_11);
PyTuple_SET_ITEM(__pyx_t_12, 4, __pyx_t_11);
__pyx_t_4 = 0;
__pyx_t_2 = 0;
__pyx_t_9 = 0;
__pyx_t_10 = 0;
__pyx_t_11 = 0;
__pyx_t_11 = __pyx_t_12; __Pyx_INCREF(__pyx_t_11); __pyx_t_13 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
for (;;) {
if (__pyx_t_13 >= 5) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_13); __Pyx_INCREF(__pyx_t_12); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1927, __pyx_L1_error)
#else
__pyx_t_12 = PySequence_ITEM(__pyx_t_11, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
#endif
__Pyx_XDECREF_SET(__pyx_v_ee, __pyx_t_12);
__pyx_t_12 = 0;
__pyx_t_12 = PyObject_RichCompare(__pyx_v_ee, __pyx_float_1_eneg_4, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1927, __pyx_L1_error)
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
}
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1927, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_3)) {
+1928: eps_vz, eps_b,
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_eps_vz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_eps_b); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10);
+1929: eps_plane]]), error_message
__pyx_t_11 = PyFloat_FromDouble(__pyx_v_eps_plane); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); /* … */ PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message); __PYX_ERR(0, 1927, __pyx_L1_error) } } #endif
+1930: error_message = "ves_type must be a str in ['Tor','Lin']!"
__Pyx_INCREF(__pyx_kp_s_ves_type_must_be_a_str_in_Tor_Li); __Pyx_DECREF_SET(__pyx_v_error_message, __pyx_kp_s_ves_type_must_be_a_str_in_Tor_Li);
+1931: assert ves_type.lower() in ['tor', 'lin'], error_message
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_11 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1931, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_6 = (__Pyx_PyString_Equals(__pyx_t_11, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1931, __pyx_L1_error)
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_6 = (__Pyx_PyString_Equals(__pyx_t_11, __pyx_n_s_lin, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1931, __pyx_L1_error)
__pyx_t_3 = __pyx_t_6;
__pyx_L17_bool_binop_done:;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1931, __pyx_L1_error)
}
}
#endif
1932: error_message = "If you define structures you must define all the "\
+1933: + "structural variables: \n"\
__pyx_t_11 = PyNumber_Add(__pyx_kp_s_If_you_define_structures_you_mus, __pyx_kp_s_structural_variables); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11);
+1934: + " - lstruct_polyx, lstruct_polyy, lstruct_lims,\n"\
__pyx_t_1 = PyNumber_Add(__pyx_t_11, __pyx_kp_s_lstruct_polyx_lstruct_polyy_lst); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1935: + " - lstruct_nlim, nstruct_tot, nstruct_lim,\n"\
__pyx_t_11 = PyNumber_Add(__pyx_t_1, __pyx_kp_s_lstruct_nlim_nstruct_tot_nstruc); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1936: + " - lnvert, lstruct_normx, lstruct_normy\n"
__pyx_t_1 = PyNumber_Add(__pyx_t_11, __pyx_kp_s_lnvert_lstruct_normx_lstruct_no); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF_SET(__pyx_v_error_message, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+1937: bool1 = ((lstruct_polyx is not None)
__pyx_t_6 = ((((PyObject *) __pyx_v_lstruct_polyx.memview) != Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L19_bool_binop_done;
}
+1938: or (lstruct_polyy is not None)
__pyx_t_6 = ((((PyObject *) __pyx_v_lstruct_polyy.memview) != Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L19_bool_binop_done;
}
+1939: or (lstruct_normx is not None)
__pyx_t_6 = ((((PyObject *) __pyx_v_lstruct_normx.memview) != Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L19_bool_binop_done;
}
+1940: or (lstruct_normy is not None)
__pyx_t_6 = ((((PyObject *) __pyx_v_lstruct_normy.memview) != Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L19_bool_binop_done;
}
+1941: or (lstruct_nlim is not None)
__pyx_t_6 = ((((PyObject *) __pyx_v_lstruct_nlim.memview) != Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L19_bool_binop_done;
}
+1942: or (lstruct_lims is not None)
__pyx_t_6 = (__pyx_v_lstruct_lims != ((PyObject*)Py_None));
__pyx_t_5 = (__pyx_t_6 != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L19_bool_binop_done;
}
+1943: or (lnvert is not None)
__pyx_t_5 = ((((PyObject *) __pyx_v_lnvert.memview) != Py_None) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L19_bool_binop_done;
}
+1944: or (nstruct_tot > 0) or (nstruct_lim > 0))
__pyx_t_5 = ((__pyx_v_nstruct_tot > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L19_bool_binop_done;
}
__pyx_t_5 = ((__pyx_v_nstruct_lim > 0) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L19_bool_binop_done:;
__pyx_v_bool1 = __pyx_t_3;
+1945: if bool1:
__pyx_t_3 = (__pyx_v_bool1 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L28;
}
+1946: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
__Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
goto __pyx_L34_try_end;
__pyx_L29_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
goto __pyx_L1_error;
__pyx_L30_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_14);
__Pyx_XGIVEREF(__pyx_t_15);
__Pyx_XGIVEREF(__pyx_t_16);
__Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
__pyx_L34_try_end:;
}
+1947: bool1 = ((len(lstruct_polyx) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_polyx);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1948: or (len(lstruct_polyy) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_polyy);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1949: or (len(lstruct_normx) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_normx);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1950: or (len(lstruct_normy) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_normy);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1951: or (len(lstruct_nlim) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_nlim);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1952: or (len(lstruct_lims) > 0)
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1952, __pyx_L29_error)
}
__pyx_t_13 = PyList_GET_SIZE(__pyx_v_lstruct_lims); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1952, __pyx_L29_error)
__pyx_t_5 = ((__pyx_t_13 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1953: or (len(lnvert) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lnvert);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1954: or (nstruct_tot > 0)
__pyx_t_5 = ((__pyx_v_nstruct_tot > 0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L35_bool_binop_done;
}
+1955: or (nstruct_lim > 0))
__pyx_t_5 = ((__pyx_v_nstruct_lim > 0) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L35_bool_binop_done:;
__pyx_v_bool1 = __pyx_t_3;
+1956: bool2 = ((len(lstruct_polyx) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_polyx);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1957: and (len(lstruct_polyy) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_polyy);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1958: and (len(lstruct_normx) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_normx);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1959: and (len(lstruct_normy) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_normy);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1960: and (len(lstruct_nlim) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lstruct_nlim);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1961: and (len(lstruct_lims) > 0)
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
__PYX_ERR(0, 1961, __pyx_L29_error)
}
__pyx_t_13 = PyList_GET_SIZE(__pyx_v_lstruct_lims); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1961, __pyx_L29_error)
__pyx_t_5 = ((__pyx_t_13 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1962: and (len(lnvert) > 0)
__pyx_t_7 = __Pyx_MemoryView_Len(__pyx_v_lnvert);
__pyx_t_5 = ((__pyx_t_7 > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1963: and (nstruct_tot > 0)
__pyx_t_5 = ((__pyx_v_nstruct_tot > 0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L44_bool_binop_done;
}
+1964: and (nstruct_lim > 0))
__pyx_t_5 = ((__pyx_v_nstruct_lim > 0) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L44_bool_binop_done:;
__pyx_v_bool2 = __pyx_t_3;
+1965: assert (not bool1 or bool2), error_message
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = ((!(__pyx_v_bool1 != 0)) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L53_bool_binop_done;
}
__pyx_t_5 = (__pyx_v_bool2 != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L53_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1965, __pyx_L29_error)
}
}
#endif
+1966: except Exception:
__pyx_t_17 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_17) { __Pyx_AddTraceback("tofu.geom._GG03.LOS_Calc_PInOut_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_11, &__pyx_t_12) < 0) __PYX_ERR(0, 1966, __pyx_L31_except_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GOTREF(__pyx_t_11); __Pyx_GOTREF(__pyx_t_12);
+1967: assert False, error_message
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1967, __pyx_L31_except_error)
}
}
#endif
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
goto __pyx_L30_exception_handled;
}
goto __pyx_L31_except_error;
__pyx_L31_except_error:;
1968: else:
+1969: bool2 = ((lstruct_polyx is not None)
/*else*/ {
/* … */
__pyx_t_5 = ((((PyObject *) __pyx_v_lstruct_polyx.memview) != Py_None) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L57_bool_binop_done;
}
+1970: and (lstruct_polyy is not None)
__pyx_t_5 = ((((PyObject *) __pyx_v_lstruct_polyy.memview) != Py_None) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L57_bool_binop_done;
}
+1971: and (lstruct_normx is not None)
__pyx_t_5 = ((((PyObject *) __pyx_v_lstruct_normx.memview) != Py_None) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L57_bool_binop_done;
}
+1972: and (lstruct_normy is not None)
__pyx_t_5 = ((((PyObject *) __pyx_v_lstruct_normy.memview) != Py_None) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L57_bool_binop_done;
}
+1973: and (lstruct_nlim is not None)
__pyx_t_5 = ((((PyObject *) __pyx_v_lstruct_nlim.memview) != Py_None) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L57_bool_binop_done;
}
+1974: and (lstruct_lims is not None)
__pyx_t_5 = (__pyx_v_lstruct_lims != ((PyObject*)Py_None));
/* … */
__pyx_t_6 = (__pyx_t_5 != 0);
if (__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L57_bool_binop_done;
}
+1975: and (lnvert is not None)
__pyx_t_6 = ((((PyObject *) __pyx_v_lnvert.memview) != Py_None) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L57_bool_binop_done;
}
+1976: and (nstruct_tot > 0) and (nstruct_lim > 0))
__pyx_t_6 = ((__pyx_v_nstruct_tot > 0) != 0);
if (__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L57_bool_binop_done;
}
__pyx_t_6 = ((__pyx_v_nstruct_lim > 0) != 0);
__pyx_t_3 = __pyx_t_6;
__pyx_L57_bool_binop_done:;
__pyx_v_bool2 = __pyx_t_3;
+1977: assert (not bool1 or bool2), error_message
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_6 = ((!(__pyx_v_bool1 != 0)) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L66_bool_binop_done;
}
__pyx_t_6 = (__pyx_v_bool2 != 0);
__pyx_t_3 = __pyx_t_6;
__pyx_L66_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 1977, __pyx_L1_error)
}
}
#endif
}
__pyx_L28:;
1978:
1979: # ==========================================================================
+1980: if ves_type.lower() == 'tor':
__pyx_t_12 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_12, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1980, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L68; }
1981: # .. if there are, we get the limits for the vessel ....................
+1982: if ves_lims is None or np.size(ves_lims) == 0:
__pyx_t_6 = ((((PyObject *) __pyx_v_ves_lims.memview) == Py_None) != 0);
if (!__pyx_t_6) {
} else {
__pyx_t_3 = __pyx_t_6;
goto __pyx_L70_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_ves_lims, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_10 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_10 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_10)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_10);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_12 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11);
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_12, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1982, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 1982, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_6;
__pyx_L70_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L69;
}
+1983: are_limited = False
__pyx_v_are_limited = 0;
+1984: lbounds_ves[0] = 0
(__pyx_v_lbounds_ves[0]) = 0.0;
+1985: lbounds_ves[1] = 0
(__pyx_v_lbounds_ves[1]) = 0.0;
+1986: llim_ves[0] = 1
(__pyx_v_llim_ves[0]) = 1;
1987: else:
+1988: are_limited = True
/*else*/ {
__pyx_v_are_limited = 1;
+1989: lbounds_ves[0] = Catan2(Csin(ves_lims[0]), Ccos(ves_lims[0]))
__pyx_t_18 = 0;
__pyx_t_19 = 0;
(__pyx_v_lbounds_ves[0]) = atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_18)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_19)) )))));
+1990: lbounds_ves[1] = Catan2(Csin(ves_lims[1]), Ccos(ves_lims[1]))
__pyx_t_20 = 1;
__pyx_t_21 = 1;
(__pyx_v_lbounds_ves[1]) = atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_20)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_21)) )))));
+1991: llim_ves[0] = 0
(__pyx_v_llim_ves[0]) = 0;
}
__pyx_L69:;
1992: # -- Toroidal case -----------------------------------------------------
1993: # rmin is necessary to avoid looking on the other side of the tokamak
+1994: if rmin < 0.:
__pyx_t_3 = ((__pyx_v_rmin < 0.) != 0);
if (__pyx_t_3) {
/* … */
}
+1995: rmin = 0.95*min(np.min(ves_poly[0, ...]),
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_min); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_22.data = __pyx_v_ves_poly.data; __pyx_t_22.memview = __pyx_v_ves_poly.memview; __PYX_INC_MEMVIEW(&__pyx_t_22, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_ves_poly.strides[0]; if ((0)) __PYX_ERR(0, 1995, __pyx_L1_error) __pyx_t_22.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_22.shape[0] = __pyx_v_ves_poly.shape[1]; __pyx_t_22.strides[0] = __pyx_v_ves_poly.strides[1]; __pyx_t_22.suboffsets[0] = -1; __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_t_22, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1); __pyx_t_22.memview = NULL; __pyx_t_22.data = NULL; __pyx_t_23 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_23)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_23); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_11 = (__pyx_t_23) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_23, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_12); __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; /* … */ __pyx_t_1 = PyNumber_Multiply(__pyx_float_0_95, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 1995, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_rmin = __pyx_t_24;
+1996: np.min(np.hypot(ray_orig[0, ...],
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_min); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_hypot); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_22.data = __pyx_v_ray_orig.data; __pyx_t_22.memview = __pyx_v_ray_orig.memview; __PYX_INC_MEMVIEW(&__pyx_t_22, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_ray_orig.strides[0]; if ((0)) __PYX_ERR(0, 1996, __pyx_L1_error) __pyx_t_22.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_22.shape[0] = __pyx_v_ray_orig.shape[1]; __pyx_t_22.strides[0] = __pyx_v_ray_orig.strides[1]; __pyx_t_22.suboffsets[0] = -1; __pyx_t_10 = __pyx_memoryview_fromslice(__pyx_t_22, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1); __pyx_t_22.memview = NULL; __pyx_t_22.data = NULL; /* … */ __pyx_t_12 = PyObject_RichCompare(__pyx_t_1, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 1996, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_3) { __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = __pyx_t_1; } else { __Pyx_INCREF(__pyx_t_11); __pyx_t_9 = __pyx_t_11; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1997: ray_orig[1, ...])))
__pyx_t_22.data = __pyx_v_ray_orig.data;
__pyx_t_22.memview = __pyx_v_ray_orig.memview;
__PYX_INC_MEMVIEW(&__pyx_t_22, 0);
{
Py_ssize_t __pyx_tmp_idx = 1;
Py_ssize_t __pyx_tmp_stride = __pyx_v_ray_orig.strides[0];
if ((0)) __PYX_ERR(0, 1997, __pyx_L1_error)
__pyx_t_22.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_22.shape[0] = __pyx_v_ray_orig.shape[1];
__pyx_t_22.strides[0] = __pyx_v_ray_orig.strides[1];
__pyx_t_22.suboffsets[0] = -1;
__pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_22, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__pyx_t_22.memview = NULL;
__pyx_t_22.data = NULL;
__pyx_t_4 = NULL;
__pyx_t_17 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
__pyx_t_17 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_10, __pyx_t_2};
__pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_10, __pyx_t_2};
__pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else
#endif
{
__pyx_t_23 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_17, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_17, __pyx_t_2);
__pyx_t_10 = 0;
__pyx_t_2 = 0;
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_23, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
}
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
__pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
if (likely(__pyx_t_9)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
__Pyx_INCREF(__pyx_t_9);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_11, function);
}
}
__pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_9, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_12);
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1998: rmin2 = rmin*rmin
__pyx_v_rmin2 = (__pyx_v_rmin * __pyx_v_rmin);
1999: # Variable to avoid looking "behind" blind spot of tore
+2000: if forbid:
__pyx_t_3 = (__pyx_v_forbid != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L73;
}
+2001: forbid0, forbidbis = 1, 1
__pyx_t_3 = 1;
__pyx_t_6 = 1;
__pyx_v_forbid0 = __pyx_t_3;
__pyx_v_forbidbis = __pyx_t_6;
2002: else:
+2003: forbid0, forbidbis = 0, 0
/*else*/ {
__pyx_t_6 = 0;
__pyx_t_3 = 0;
__pyx_v_forbid0 = __pyx_t_6;
__pyx_v_forbidbis = __pyx_t_3;
}
__pyx_L73:;
2004:
2005: # -- Computing intersection between LOS and Vessel ---------------------
+2006: raytracing_inout_struct_tor(num_los, ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_raytracing_inout_struct_tor(__pyx_v_num_los, __pyx_v_ray_vdir, __pyx_v_ray_orig, __pyx_t_22, __pyx_t_25, __pyx_t_26, __pyx_v_lstruct_nlim, __pyx_t_27, __pyx_v_forbid0, __pyx_v_forbidbis, __pyx_v_rmin, __pyx_v_rmin2, __pyx_v_Crit2_base, __pyx_v_npts_poly, NULL, __pyx_v_lbounds_ves, __pyx_v_llim_ves, NULL, NULL, (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_28 * __pyx_v_ves_poly.strides[0]) )) + __pyx_t_29)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_30 * __pyx_v_ves_poly.strides[0]) )) + __pyx_t_31)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_32 * __pyx_v_ves_norm.strides[0]) )) + __pyx_t_33)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_34 * __pyx_v_ves_norm.strides[0]) )) + __pyx_t_35)) )))), __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_num_threads, 0);
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__pyx_t_22.memview = NULL;
__pyx_t_22.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
__pyx_t_25.memview = NULL;
__pyx_t_25.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
__pyx_t_26.memview = NULL;
__pyx_t_26.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_27, 1);
__pyx_t_27.memview = NULL;
__pyx_t_27.data = NULL;
+2007: coeff_inter_out, coeff_inter_in,
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 2007, __pyx_L1_error) __pyx_t_25 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_in), PyBUF_WRITABLE); if (unlikely(!__pyx_t_25.memview)) __PYX_ERR(0, 2007, __pyx_L1_error)
+2008: vperp_out, lstruct_nlim, ind_inter_out,
__pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_vperp_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 2008, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_ind_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_27.memview)) __PYX_ERR(0, 2008, __pyx_L1_error)
2009: forbid0, forbidbis,
2010: rmin, rmin2, Crit2_base,
2011: npts_poly, NULL, lbounds_ves,
2012: llim_ves, NULL, NULL,
+2013: &ves_poly[0][0],
__pyx_t_28 = 0;
__pyx_t_29 = 0;
+2014: &ves_poly[1][0],
__pyx_t_30 = 1;
__pyx_t_31 = 0;
+2015: &ves_norm[0][0],
__pyx_t_32 = 0;
__pyx_t_33 = 0;
+2016: &ves_norm[1][0],
__pyx_t_34 = 1;
__pyx_t_35 = 0;
2017: eps_uz, eps_vz, eps_a, eps_b, eps_plane,
2018: num_threads, False) # structure is in
2019:
2020: # -- Treating the structures (if any) ----------------------------------
+2021: if nstruct_tot > 0:
__pyx_t_3 = ((__pyx_v_nstruct_tot > 0) != 0);
if (__pyx_t_3) {
/* … */
}
+2022: ind_struct = 0
__pyx_v_ind_struct = 0;
+2023: llimits = <int *>malloc(nstruct_tot * sizeof(int))
__pyx_v_llimits = ((int *)malloc((__pyx_v_nstruct_tot * (sizeof(int)))));
+2024: lsz_lim = <long *>malloc(nstruct_lim * sizeof(long))
__pyx_v_lsz_lim = ((long *)malloc((__pyx_v_nstruct_lim * (sizeof(long)))));
+2025: for ii in range(nstruct_lim):
__pyx_t_17 = __pyx_v_nstruct_lim;
__pyx_t_36 = __pyx_t_17;
for (__pyx_t_37 = 0; __pyx_t_37 < __pyx_t_36; __pyx_t_37+=1) {
__pyx_v_ii = __pyx_t_37;
2026: # For fast accessing
+2027: len_lim = lstruct_nlim[ii]
__pyx_t_38 = __pyx_v_ii;
__pyx_v_len_lim = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_38)) )));
2028: # We get the limits if any
+2029: if len_lim == 0:
switch (__pyx_v_len_lim) {
case 0:
/* … */
break;
case 1:
+2030: lslim = [None]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_1); __pyx_t_1 = 0;
+2031: lstruct_nlim[ii] = lstruct_nlim[ii] + 1
__pyx_t_39 = __pyx_v_ii;
__pyx_t_40 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_40)) )) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_39)) ))) + 1);
+2032: elif len_lim == 1:
break;
default:
+2033: lslim = [[lstruct_lims[ii][0, 0], lstruct_lims[ii][0, 1]]]
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2033, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(PyList_GET_ITEM(__pyx_v_lstruct_lims, __pyx_v_ii), __pyx_tuple__33); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2033, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(PyList_GET_ITEM(__pyx_v_lstruct_lims, __pyx_v_ii), __pyx_tuple__34); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_11 = PyList_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_9);
PyList_SET_ITEM(__pyx_t_11, 1, __pyx_t_9);
__pyx_t_1 = 0;
__pyx_t_9 = 0;
__pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_11);
PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_11);
__pyx_t_11 = 0;
__Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_9);
__pyx_t_9 = 0;
2034: else:
+2035: lslim = lstruct_lims[ii]
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2035, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_ITEM(__pyx_v_lstruct_lims, __pyx_v_ii);
__Pyx_INCREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_9);
__pyx_t_9 = 0;
break;
}
2036: # We get the number of vertices and limits of the struct's poly
+2037: if ii == 0:
__pyx_t_3 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L77;
}
+2038: lsz_lim[0] = 0
(__pyx_v_lsz_lim[0]) = 0;
+2039: nvert = lnvert[0]
__pyx_t_41 = 0;
__pyx_v_nvert = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_41)) )));
+2040: ind_min = 0
__pyx_v_ind_min = 0;
2041: else:
+2042: nvert = lnvert[ii] - lnvert[ii - 1]
/*else*/ {
__pyx_t_42 = __pyx_v_ii;
__pyx_t_43 = (__pyx_v_ii - 1);
__pyx_v_nvert = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_42)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_43)) ))));
+2043: lsz_lim[ii] = lstruct_nlim[ii-1] + lsz_lim[ii-1]
__pyx_t_44 = (__pyx_v_ii - 1);
(__pyx_v_lsz_lim[__pyx_v_ii]) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_44)) ))) + (__pyx_v_lsz_lim[(__pyx_v_ii - 1)]));
+2044: ind_min = lnvert[ii-1]
__pyx_t_45 = (__pyx_v_ii - 1);
__pyx_v_ind_min = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_45)) )));
}
__pyx_L77:;
2045: # and loop over the limits (one continous structure)
+2046: for jj in range(max(len_lim,1)):
__pyx_t_46 = 1;
__pyx_t_47 = __pyx_v_len_lim;
if (((__pyx_t_46 > __pyx_t_47) != 0)) {
__pyx_t_48 = __pyx_t_46;
} else {
__pyx_t_48 = __pyx_t_47;
}
__pyx_t_46 = __pyx_t_48;
__pyx_t_48 = __pyx_t_46;
for (__pyx_t_47 = 0; __pyx_t_47 < __pyx_t_48; __pyx_t_47+=1) {
__pyx_v_jj = __pyx_t_47;
2047: # We compute the structure's bounding box:
+2048: if lslim[jj] is not None:
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_6 = (__pyx_t_3 != 0); if (__pyx_t_6) { /* … */ goto __pyx_L80; }
+2049: lim_ves[0] = lslim[jj][0]
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_11); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2049, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; (__pyx_v_lim_ves[0]) = __pyx_t_24;
+2050: lim_ves[1] = lslim[jj][1]
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_11, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2050, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; (__pyx_v_lim_ves[1]) = __pyx_t_24;
+2051: llimits[ind_struct] = 0 # False : struct is limited
(__pyx_v_llimits[__pyx_v_ind_struct]) = 0;
+2052: lim_min = Catan2(Csin(lim_ves[0]), Ccos(lim_ves[0]))
__pyx_v_lim_min = atan2(sin((__pyx_v_lim_ves[0])), cos((__pyx_v_lim_ves[0])));
+2053: lim_max = Catan2(Csin(lim_ves[1]), Ccos(lim_ves[1]))
__pyx_v_lim_max = atan2(sin((__pyx_v_lim_ves[1])), cos((__pyx_v_lim_ves[1])));
+2054: comp_bbox_poly_tor_lim(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor_lim(__pyx_v_nvert, (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyx.data) + __pyx_t_49)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyy.data) + __pyx_t_50)) )))), (&(__pyx_v_lbounds[(__pyx_v_ind_struct * 6)])), __pyx_v_lim_min, __pyx_v_lim_max);
+2055: &lstruct_polyx[ind_min],
__pyx_t_49 = __pyx_v_ind_min;
+2056: &lstruct_polyy[ind_min],
__pyx_t_50 = __pyx_v_ind_min;
2057: &lbounds[ind_struct*6],
2058: lim_min, lim_max)
2059: else:
+2060: llimits[ind_struct] = 1 # True : is continous
/*else*/ {
(__pyx_v_llimits[__pyx_v_ind_struct]) = 1;
+2061: comp_bbox_poly_tor(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor(__pyx_v_nvert, (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyx.data) + __pyx_t_51)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyy.data) + __pyx_t_52)) )))), (&(__pyx_v_lbounds[(__pyx_v_ind_struct * 6)])));
+2062: &lstruct_polyx[ind_min],
__pyx_t_51 = __pyx_v_ind_min;
+2063: &lstruct_polyy[ind_min],
__pyx_t_52 = __pyx_v_ind_min;
2064: &lbounds[ind_struct*6])
+2065: lim_min = 0.
__pyx_v_lim_min = 0.;
+2066: lim_max = 0.
__pyx_v_lim_max = 0.;
}
__pyx_L80:;
+2067: langles[ind_struct*2] = lim_min
(__pyx_v_langles[(__pyx_v_ind_struct * 2)]) = __pyx_v_lim_min;
+2068: langles[ind_struct*2 + 1] = lim_max
(__pyx_v_langles[((__pyx_v_ind_struct * 2) + 1)]) = __pyx_v_lim_max;
+2069: ind_struct = 1 + ind_struct
__pyx_v_ind_struct = (1 + __pyx_v_ind_struct);
}
}
2070: # end loops over structures
2071:
2072: # -- Computing intersection between structures and LOS -------------
+2073: raytracing_inout_struct_tor(num_los, ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_raytracing_inout_struct_tor(__pyx_v_num_los, __pyx_v_ray_vdir, __pyx_v_ray_orig, __pyx_t_26, __pyx_t_25, __pyx_t_22, __pyx_v_lstruct_nlim, __pyx_t_27, __pyx_v_forbid0, __pyx_v_forbidbis, __pyx_v_rmin, __pyx_v_rmin2, __pyx_v_Crit2_base, __pyx_v_nstruct_lim, __pyx_v_lbounds, __pyx_v_langles, __pyx_v_llimits, (&(*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_53)) )))), __pyx_v_lsz_lim, (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyx.data) + __pyx_t_54)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyy.data) + __pyx_t_55)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_normx.data) + __pyx_t_56)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_normy.data) + __pyx_t_57)) )))), __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_num_threads, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
__pyx_t_26.memview = NULL;
__pyx_t_26.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
__pyx_t_25.memview = NULL;
__pyx_t_25.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__pyx_t_22.memview = NULL;
__pyx_t_22.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_27, 1);
__pyx_t_27.memview = NULL;
__pyx_t_27.data = NULL;
+2074: coeff_inter_out, coeff_inter_in,
__pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 2074, __pyx_L1_error) __pyx_t_25 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_in), PyBUF_WRITABLE); if (unlikely(!__pyx_t_25.memview)) __PYX_ERR(0, 2074, __pyx_L1_error)
+2075: vperp_out, lstruct_nlim, ind_inter_out,
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_vperp_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 2075, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_ind_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_27.memview)) __PYX_ERR(0, 2075, __pyx_L1_error)
2076: forbid0, forbidbis,
2077: rmin, rmin2, Crit2_base,
2078: nstruct_lim,
2079: lbounds, langles, llimits,
+2080: &lnvert[0], lsz_lim,
__pyx_t_53 = 0;
+2081: &lstruct_polyx[0], &lstruct_polyy[0],
__pyx_t_54 = 0;
__pyx_t_55 = 0;
+2082: &lstruct_normx[0], &lstruct_normy[0],
__pyx_t_56 = 0;
__pyx_t_57 = 0;
2083: eps_uz, eps_vz, eps_a, eps_b, eps_plane,
2084: num_threads,
2085: True) # the structure is "OUT"
+2086: free(lsz_lim)
free(__pyx_v_lsz_lim);
+2087: free(llimits)
free(__pyx_v_llimits);
2088: else:
2089: # .. if there are, we get the limits for the vessel ....................
+2090: if ves_lims is None or np.size(ves_lims) == 0:
/*else*/ {
__pyx_t_3 = ((((PyObject *) __pyx_v_ves_lims.memview) == Py_None) != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_6 = __pyx_t_3;
goto __pyx_L82_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = __pyx_memoryview_fromslice(__pyx_v_ves_lims, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_12)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_12);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_9 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11);
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2090, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = __pyx_t_3;
__pyx_L82_bool_binop_done:;
if (__pyx_t_6) {
/* … */
goto __pyx_L81;
}
+2091: are_limited = False
__pyx_v_are_limited = 0;
+2092: lbounds_ves[0] = 0
(__pyx_v_lbounds_ves[0]) = 0.0;
+2093: lbounds_ves[1] = 0
(__pyx_v_lbounds_ves[1]) = 0.0;
2094: else:
+2095: are_limited = True
/*else*/ {
__pyx_v_are_limited = 1;
+2096: lbounds_ves[0] = ves_lims[0]
__pyx_t_58 = 0;
(__pyx_v_lbounds_ves[0]) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_58)) )));
+2097: lbounds_ves[1] = ves_lims[1]
__pyx_t_59 = 1;
(__pyx_v_lbounds_ves[1]) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_59)) )));
}
__pyx_L81:;
2098:
2099: # -- Cylindrical case --------------------------------------------------
+2100: raytracing_inout_struct_lin(num_los, ray_orig, ray_vdir, npts_poly,
__pyx_f_4tofu_4geom_5_GG03_raytracing_inout_struct_lin(__pyx_v_num_los, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_npts_poly, (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_60 * __pyx_v_ves_poly.strides[0]) )) + __pyx_t_61)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_62 * __pyx_v_ves_poly.strides[0]) )) + __pyx_t_63)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_64 * __pyx_v_ves_norm.strides[0]) )) + __pyx_t_65)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_66 * __pyx_v_ves_norm.strides[0]) )) + __pyx_t_67)) )))), (__pyx_v_lbounds_ves[0]), (__pyx_v_lbounds_ves[1]), __pyx_t_22, __pyx_t_25, __pyx_t_26, __pyx_t_27, __pyx_v_eps_plane, 0, 0);
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__pyx_t_22.memview = NULL;
__pyx_t_22.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
__pyx_t_25.memview = NULL;
__pyx_t_25.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
__pyx_t_26.memview = NULL;
__pyx_t_26.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_27, 1);
__pyx_t_27.memview = NULL;
__pyx_t_27.data = NULL;
+2101: &ves_poly[0][0], &ves_poly[1][0],
__pyx_t_60 = 0;
__pyx_t_61 = 0;
__pyx_t_62 = 1;
__pyx_t_63 = 0;
+2102: &ves_norm[0][0], &ves_norm[1][0],
__pyx_t_64 = 0;
__pyx_t_65 = 0;
__pyx_t_66 = 1;
__pyx_t_67 = 0;
2103: lbounds_ves[0], lbounds_ves[1],
+2104: coeff_inter_in, coeff_inter_out,
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_in), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 2104, __pyx_L1_error) __pyx_t_25 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_25.memview)) __PYX_ERR(0, 2104, __pyx_L1_error)
+2105: vperp_out, ind_inter_out, eps_plane,
__pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_vperp_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 2105, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_ind_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_27.memview)) __PYX_ERR(0, 2105, __pyx_L1_error)
2106: 0, 0) # The vessel is strcuture 0,0
2107:
2108: # -- Treating the structures (if any) ----------------------------------
+2109: if nstruct_tot > 0:
__pyx_t_6 = ((__pyx_v_nstruct_tot > 0) != 0);
if (__pyx_t_6) {
/* … */
}
}
__pyx_L68:;
+2110: ind_struct = 0
__pyx_v_ind_struct = 0;
+2111: for ii in range(nstruct_lim):
__pyx_t_17 = __pyx_v_nstruct_lim;
__pyx_t_36 = __pyx_t_17;
for (__pyx_t_37 = 0; __pyx_t_37 < __pyx_t_36; __pyx_t_37+=1) {
__pyx_v_ii = __pyx_t_37;
2112: # -- Analyzing the limits --------------------------------------
+2113: len_lim = lstruct_nlim[ii]
__pyx_t_68 = __pyx_v_ii;
__pyx_v_len_lim = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_68)) )));
2114: # We get the limits if any
+2115: if len_lim == 0:
switch (__pyx_v_len_lim) {
case 0:
/* … */
break;
case 1:
+2116: lslim = [None]
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(Py_None); __Pyx_GIVEREF(Py_None); PyList_SET_ITEM(__pyx_t_1, 0, Py_None); __Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_1); __pyx_t_1 = 0;
+2117: lstruct_nlim[ii] = lstruct_nlim[ii] + 1
__pyx_t_69 = __pyx_v_ii;
__pyx_t_70 = __pyx_v_ii;
*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_70)) )) = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_69)) ))) + 1);
+2118: elif len_lim == 1:
break;
default:
+2119: lslim = [[lstruct_lims[ii][0, 0], lstruct_lims[ii][0, 1]]]
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2119, __pyx_L1_error)
}
__pyx_t_1 = __Pyx_PyObject_GetItem(PyList_GET_ITEM(__pyx_v_lstruct_lims, __pyx_v_ii), __pyx_tuple__33); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2119, __pyx_L1_error)
}
__pyx_t_9 = __Pyx_PyObject_GetItem(PyList_GET_ITEM(__pyx_v_lstruct_lims, __pyx_v_ii), __pyx_tuple__34); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_11 = PyList_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_1);
PyList_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
__Pyx_GIVEREF(__pyx_t_9);
PyList_SET_ITEM(__pyx_t_11, 1, __pyx_t_9);
__pyx_t_1 = 0;
__pyx_t_9 = 0;
__pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_11);
PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_11);
__pyx_t_11 = 0;
__Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_9);
__pyx_t_9 = 0;
2120: else:
+2121: lslim = lstruct_lims[ii]
if (unlikely(__pyx_v_lstruct_lims == Py_None)) {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
__PYX_ERR(0, 2121, __pyx_L1_error)
}
__pyx_t_9 = PyList_GET_ITEM(__pyx_v_lstruct_lims, __pyx_v_ii);
__Pyx_INCREF(__pyx_t_9);
__Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_9);
__pyx_t_9 = 0;
break;
}
+2122: if ii == 0:
__pyx_t_6 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_6) {
/* … */
goto __pyx_L87;
}
+2123: nvert = lnvert[0]
__pyx_t_71 = 0;
__pyx_v_nvert = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_71)) )));
+2124: ind_min = 0
__pyx_v_ind_min = 0;
2125: else:
+2126: nvert = lnvert[ii] - lnvert[ii - 1]
/*else*/ {
__pyx_t_72 = __pyx_v_ii;
__pyx_t_73 = (__pyx_v_ii - 1);
__pyx_v_nvert = ((*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_72)) ))) - (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_73)) ))));
+2127: ind_min = lnvert[ii-1]
__pyx_t_74 = (__pyx_v_ii - 1);
__pyx_v_ind_min = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_74)) )));
}
__pyx_L87:;
2128: # and loop over the limits (one continous structure)
+2129: for jj in range(max(len_lim,1)):
__pyx_t_46 = 1;
__pyx_t_47 = __pyx_v_len_lim;
if (((__pyx_t_46 > __pyx_t_47) != 0)) {
__pyx_t_48 = __pyx_t_46;
} else {
__pyx_t_48 = __pyx_t_47;
}
__pyx_t_46 = __pyx_t_48;
__pyx_t_48 = __pyx_t_46;
for (__pyx_t_47 = 0; __pyx_t_47 < __pyx_t_48; __pyx_t_47+=1) {
__pyx_v_jj = __pyx_t_47;
+2130: if lslim[jj] is not None:
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = (__pyx_t_9 != Py_None); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_3 = (__pyx_t_6 != 0); if (__pyx_t_3) { /* … */ }
+2131: lbounds_ves[0] = lslim[jj][0]
__pyx_t_9 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_11); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2131, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; (__pyx_v_lbounds_ves[0]) = __pyx_t_24;
+2132: lbounds_ves[1] = lslim[jj][1]
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_11, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2132, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; (__pyx_v_lbounds_ves[1]) = __pyx_t_24;
+2133: raytracing_inout_struct_lin(num_los, ray_orig, ray_vdir,
__pyx_f_4tofu_4geom_5_GG03_raytracing_inout_struct_lin(__pyx_v_num_los, __pyx_v_ray_orig, __pyx_v_ray_vdir, (__pyx_v_nvert - 1), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyx.data) + __pyx_t_75)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_polyy.data) + __pyx_t_76)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_normx.data) + __pyx_t_77)) )))), (&(*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_lstruct_normy.data) + __pyx_t_78)) )))), (__pyx_v_lbounds_ves[0]), (__pyx_v_lbounds_ves[1]), __pyx_t_26, __pyx_t_25, __pyx_t_22, __pyx_t_27, __pyx_v_eps_plane, (__pyx_v_ii + 1), __pyx_v_jj);
__PYX_XDEC_MEMVIEW(&__pyx_t_26, 1);
__pyx_t_26.memview = NULL;
__pyx_t_26.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_25, 1);
__pyx_t_25.memview = NULL;
__pyx_t_25.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__pyx_t_22.memview = NULL;
__pyx_t_22.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_27, 1);
__pyx_t_27.memview = NULL;
__pyx_t_27.data = NULL;
}
}
2134: nvert-1,
+2135: &lstruct_polyx[ind_min],
__pyx_t_75 = __pyx_v_ind_min;
+2136: &lstruct_polyy[ind_min],
__pyx_t_76 = __pyx_v_ind_min;
+2137: &lstruct_normx[ind_min-ii],
__pyx_t_77 = (__pyx_v_ind_min - __pyx_v_ii);
+2138: &lstruct_normy[ind_min-ii],
__pyx_t_78 = (__pyx_v_ind_min - __pyx_v_ii);
2139: lbounds_ves[0], lbounds_ves[1],
+2140: coeff_inter_in, coeff_inter_out,
__pyx_t_26 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_in), PyBUF_WRITABLE); if (unlikely(!__pyx_t_26.memview)) __PYX_ERR(0, 2140, __pyx_L1_error) __pyx_t_25 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_coeff_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_25.memview)) __PYX_ERR(0, 2140, __pyx_L1_error)
+2141: vperp_out, ind_inter_out,
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_vperp_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 2141, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_ind_inter_out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_27.memview)) __PYX_ERR(0, 2141, __pyx_L1_error)
2142: eps_plane, ii+1, jj)
2143:
+2144: free(lbounds)
free(__pyx_v_lbounds);
+2145: free(langles)
free(__pyx_v_langles);
2146:
+2147: return np.asarray(coeff_inter_in), np.asarray(coeff_inter_out),\
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_9 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_11, ((PyObject *)__pyx_v_coeff_inter_in)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_coeff_inter_in)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_asarray); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_11, ((PyObject *)__pyx_v_coeff_inter_out)) : __Pyx_PyObject_CallOneArg(__pyx_t_12, ((PyObject *)__pyx_v_coeff_inter_out)); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* … */ __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_23); __pyx_t_9 = 0; __pyx_t_1 = 0; __pyx_t_12 = 0; __pyx_t_23 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0;
+2148: np.transpose(np.asarray(vperp_out).reshape(num_los,3)),\
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_transpose); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, ((PyObject *)__pyx_v_vperp_out)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_vperp_out)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_num_los); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_2, __pyx_int_3}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_2, __pyx_int_3}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_79 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_79)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_79); if (__pyx_t_10) { __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_79, 0, __pyx_t_10); __pyx_t_10 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_79, 0+__pyx_t_17, __pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_79, 1+__pyx_t_17, __pyx_int_3); __pyx_t_2 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_79, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_79); __pyx_t_79 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_23))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_23); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_23, function); } } __pyx_t_12 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_23, __pyx_t_4, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_23, __pyx_t_11); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2149: np.transpose(np.asarray(ind_inter_out, dtype=int).reshape(num_los, 3))
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_transpose); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GetModuleGlobalName(__pyx_t_79, __pyx_n_s_np); if (unlikely(!__pyx_t_79)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_79); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_79, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_79); __pyx_t_79 = 0; __pyx_t_79 = PyTuple_New(1); if (unlikely(!__pyx_t_79)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_79); __Pyx_INCREF(((PyObject *)__pyx_v_ind_inter_out)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ind_inter_out)); PyTuple_SET_ITEM(__pyx_t_79, 0, ((PyObject *)__pyx_v_ind_inter_out)); __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, ((PyObject *)(&PyInt_Type))) < 0) __PYX_ERR(0, 2149, __pyx_L1_error) __pyx_t_80 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_79, __pyx_t_10); if (unlikely(!__pyx_t_80)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_80); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_79); __pyx_t_79 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_80, __pyx_n_s_reshape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_80); __pyx_t_80 = 0; __pyx_t_80 = __Pyx_PyInt_From_int(__pyx_v_num_los); if (unlikely(!__pyx_t_80)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_80); __pyx_t_79 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) { __pyx_t_79 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_79)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_79); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_79, __pyx_t_80, __pyx_int_3}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_79); __pyx_t_79 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_80); __pyx_t_80 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) { PyObject *__pyx_temp[3] = {__pyx_t_79, __pyx_t_80, __pyx_int_3}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_79); __pyx_t_79 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_80); __pyx_t_80 = 0; } else #endif { __pyx_t_2 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (__pyx_t_79) { __Pyx_GIVEREF(__pyx_t_79); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_79); __pyx_t_79 = NULL; } __Pyx_GIVEREF(__pyx_t_80); PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_17, __pyx_t_80); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_17, __pyx_int_3); __pyx_t_80 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_23 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_10, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_11); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
2150:
2151:
+2152: cdef inline void raytracing_inout_struct_tor(int num_los,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_raytracing_inout_struct_tor(CYTHON_UNUSED int __pyx_v_num_los, __Pyx_memviewslice __pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ray_orig, __Pyx_memviewslice __pyx_v_coeff_inter_out, __Pyx_memviewslice __pyx_v_coeff_inter_in, __Pyx_memviewslice __pyx_v_vperp_out, __Pyx_memviewslice __pyx_v_lstruct_nlim, __Pyx_memviewslice __pyx_v_ind_inter_out, int __pyx_v_forbid0, int __pyx_v_forbidbis, double __pyx_v_rmin, double __pyx_v_rmin2, double __pyx_v_crit2_base, int __pyx_v_nstruct_lim, double *__pyx_v_lbounds, double *__pyx_v_langles, int *__pyx_v_lis_limited, long *__pyx_v_lnvert, long *__pyx_v_lsz_lim, double *__pyx_v_lstruct_polyx, double *__pyx_v_lstruct_polyy, double *__pyx_v_lstruct_normx, double *__pyx_v_lstruct_normy, double __pyx_v_eps_uz, double __pyx_v_eps_vz, double __pyx_v_eps_a, double __pyx_v_eps_b, double __pyx_v_eps_plane, int __pyx_v_num_threads, int __pyx_v_is_out_struct) {
double __pyx_v_upscaDp;
double __pyx_v_upar2;
double __pyx_v_dpar2;
double __pyx_v_crit2;
double __pyx_v_idpar2;
double __pyx_v_dist;
double __pyx_v_s1x;
double __pyx_v_s1y;
double __pyx_v_s2x;
double __pyx_v_s2y;
double __pyx_v_lim_min;
double __pyx_v_lim_max;
double __pyx_v_invuz;
int __pyx_v_totnvert;
int __pyx_v_nvert;
int __pyx_v_ind_struct;
int __pyx_v_ind_los;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_lim_is_none;
int __pyx_v_found_new_kout;
int __pyx_v_inter_bbox;
double *__pyx_v_last_pout;
double *__pyx_v_kpout_loc;
double *__pyx_v_kpin_loc;
double *__pyx_v_invr_ray;
double *__pyx_v_loc_org;
double *__pyx_v_loc_dir;
double *__pyx_v_lim_ves;
double *__pyx_v_loc_vp;
int *__pyx_v_sign_ray;
int *__pyx_v_ind_loc;
/* … */
/* function exit code */
__pyx_L0:;
}
2153: double[:,::1] ray_vdir,
2154: double[:,::1] ray_orig,
2155: double[::1] coeff_inter_out,
2156: double[::1] coeff_inter_in,
2157: double[::1] vperp_out,
2158: long[::1] lstruct_nlim,
2159: int[::1] ind_inter_out,
2160: bint forbid0, bint forbidbis,
2161: double rmin, double rmin2,
2162: double crit2_base,
2163: int nstruct_lim,
2164: double* lbounds, double* langles,
2165: int* lis_limited, long* lnvert,
2166: long* lsz_lim,
2167: double* lstruct_polyx,
2168: double* lstruct_polyy,
2169: double* lstruct_normx,
2170: double* lstruct_normy,
2171: double eps_uz, double eps_vz,
2172: double eps_a, double eps_b,
2173: double eps_plane,
2174: int num_threads,
2175: bint is_out_struct) nogil:
2176: """
2177: Computes the entry and exit point of all provided LOS/rays for a set of
2178: structures that can be of type "OUT" (is_out_struct=True) or "IN"
2179: (is_out_struct=False) in a TORE. An "OUT" structure cannot be penetrated
2180: whereas an "IN" structure can. The latter is typically a vessel and are
2181: toroidally continous. If a structure is limited we can determine the number
2182: of limits and the limits itself. For optimization reasons we will also pass
2183: the bounding box limits. And the information of the last intersected point,
2184: if any.
2185: This functions is parallelized.
2186:
2187: Params
2188: ======
2189: num_los : int
2190: Total number of lines of sight (LOS) (aka. rays)
2191: ray_vdir : (3, num_los) double array
2192: LOS normalized direction vector
2193: ray_orig : (3, num_los) double array
2194: LOS origin points coordinates
2195: coeff_inter_out : (num_los) double array <INOUT>
2196: Coefficient of exit (kout) of the last point of intersection for each LOS
2197: with the global geometry (with ALL structures)
2198: coeff_inter_in : (num_los) double array <INOUT>
2199: Coefficient of entry (kin) of the last point of intersection for each LOS
2200: with the global geometry (with ALL structures). If intersection at origin
2201: k = 0, if no intersection k = NAN
2202: vperp_out : (3*num_los) double array <INOUT>
2203: Coordinates of the normal vector of impact of the LOS (0 if none). It is
2204: stored in the following way [v_{0,x}, v_{0,y}, v_{0,z}, ..., v_{n-1,z}]
2205: lstruct_nlim : array of ints
2206: List of number of limits for all structures
2207: ind_inter_out : (3 * num_los) <INOUT>
2208: Index of structure impacted by LOS such that:
2209: ind_inter_out[ind_los*3:ind_los*3+3]=(i,j,k)
2210: where k is the index of edge impacted on the j-th sub structure of the
2211: structure number i. If the LOS impacted the vessel i=j=0
2212: forbid0 : bool
2213: Should we forbid values behind vissible radius ? (see Rmin). If false,
2214: will test "hidden" part always, else, it will depend on the LOS and
2215: on forbidbis.
2216: forbidbis: bint
2217: Should we forbid values behind vissible radius for each LOS ?
2218: rmin : double
2219: Minimal radius of vessel to take into consideration
2220: rmin2 : double
2221: Squared valued of the minimal radius
2222: crit2_base : double
2223: Critical value to evaluate for each LOS if horizontal or not
2224: nstruct_lim : int
2225: Number of OUT structures (not counting the limited versions).
2226: If not is_out_struct then lenght of vpoly.
2227: lbounds : (6 * nstruct) double array
2228: Coordinates of lower and upper edges of the bounding box for each
2229: structures (nstruct = sum_i(nstruct_lim * lsz_lim[i])
2230: If not is_out_struct then NULL
2231: langles : (2 * nstruct) double array
2232: Minimum and maximum angles where the structure lives. If the structure
2233: number 'i' is toroidally continous then langles[i:i+2] = [0, 0].
2234: lis_limited : (nstruct) int array
2235: List of bool to know if the structures (or the vessel) is limited or not.
2236: lnvert : (nstruct_lim) int array
2237: List of vertices of each polygon for each structure
2238: If not is_out_struct then NULL
2239: lsz_lim : (nstruct) int array
2240: List of the total number of structures before the ith structure. First
2241: element is always 0, else lsz_lim[i] = sum_j(lstruct_nlim[j], j=0..i-1)
2242: If not is_out_struct then NULL
2243: lstruct_polyx : (ntotnvert)
2244: List of "x" coordinates of the polygon's vertices of all structures on
2245: the poloidal plane
2246: lstruct_polyy : (ntotnvert)
2247: List of "y" coordinates of the polygon's vertices of all structures on
2248: the poloidal plane
2249: lstruct_normx : (2, num_vertex-1) double array
2250: List of "x" coordinates of the normal vectors going "inwards" of the
2251: edges of the Polygon defined by lstruct_poly
2252: lstruct_normy : (2, num_vertex-1) double array
2253: List of "y" coordinates of the normal vectors going "inwards" of the
2254: edges of the Polygon defined by lstruct_poly
2255: eps<val> : double
2256: Small value, acceptance of error
2257: num_threads : int
2258: The num_threads argument indicates how many threads the team should
2259: consist of. If not given, OpenMP will decide how many threads to use.
2260: Typically this is the number of cores available on the machine.
2261: is_out_struct : bint
2262: Bool to determine if the structure is "OUT" or "IN". An "OUT" structure
2263: cannot be penetrated whereas an "IN" structure can. The latter is
2264: typically a vessel and are toroidally continous.
2265: """
+2266: cdef double upscaDp=0., upar2=0., dpar2=0., crit2=0., idpar2=0.
__pyx_v_upscaDp = 0.; __pyx_v_upar2 = 0.; __pyx_v_dpar2 = 0.; __pyx_v_crit2 = 0.; __pyx_v_idpar2 = 0.;
+2267: cdef double dist = 0., s1x = 0., s1y = 0., s2x = 0., s2y = 0.
__pyx_v_dist = 0.; __pyx_v_s1x = 0.; __pyx_v_s1y = 0.; __pyx_v_s2x = 0.; __pyx_v_s2y = 0.;
+2268: cdef double lim_min=0., lim_max=0., invuz=0.
__pyx_v_lim_min = 0.; __pyx_v_lim_max = 0.; __pyx_v_invuz = 0.;
+2269: cdef int totnvert=0
__pyx_v_totnvert = 0;
2270: cdef int nvert
2271: cdef int ind_struct, ind_bounds
2272: cdef int ind_los, ii, jj, kk
2273: cdef bint lim_is_none
2274: cdef bint found_new_kout
2275: cdef bint inter_bbox
+2276: cdef double* last_pout = NULL
__pyx_v_last_pout = NULL;
+2277: cdef double* kpout_loc = NULL
__pyx_v_kpout_loc = NULL;
+2278: cdef double* kpin_loc = NULL
__pyx_v_kpin_loc = NULL;
+2279: cdef double* invr_ray = NULL
__pyx_v_invr_ray = NULL;
+2280: cdef double* loc_org = NULL
__pyx_v_loc_org = NULL;
+2281: cdef double* loc_dir = NULL
__pyx_v_loc_dir = NULL;
+2282: cdef double* lim_ves = NULL
__pyx_v_lim_ves = NULL;
+2283: cdef double* loc_vp = NULL
__pyx_v_loc_vp = NULL;
+2284: cdef int* sign_ray = NULL
__pyx_v_sign_ray = NULL;
+2285: cdef int* ind_loc = NULL
__pyx_v_ind_loc = NULL;
2286:
2287: # == Defining parallel part ================================================
+2288: with nogil, parallel(num_threads=num_threads):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_ind_loc, __pyx_v_invr_ray, __pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_last_pout, __pyx_v_lim_ves, __pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_loc_vp, __pyx_v_sign_ray) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_ind_loc, __pyx_v_invr_ray, __pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_last_pout, __pyx_v_lim_ves, __pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_loc_vp, __pyx_v_sign_ray) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_ind_loc = ((int *)1);
__pyx_v_invr_ray = ((double *)1);
__pyx_v_kpin_loc = ((double *)1);
__pyx_v_kpout_loc = ((double *)1);
__pyx_v_last_pout = ((double *)1);
__pyx_v_lim_ves = ((double *)1);
__pyx_v_loc_dir = ((double *)1);
__pyx_v_loc_org = ((double *)1);
__pyx_v_loc_vp = ((double *)1);
__pyx_v_sign_ray = ((int *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
2289: # We use local arrays for each thread so
+2290: loc_org = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_org = ((double *)malloc(((sizeof(double)) * 3)));
+2291: loc_dir = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_dir = ((double *)malloc(((sizeof(double)) * 3)));
+2292: loc_vp = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_vp = ((double *)malloc(((sizeof(double)) * 3)));
+2293: kpin_loc = <double *> malloc(sizeof(double) * 1)
__pyx_v_kpin_loc = ((double *)malloc(((sizeof(double)) * 1)));
+2294: kpout_loc = <double *> malloc(sizeof(double) * 1)
__pyx_v_kpout_loc = ((double *)malloc(((sizeof(double)) * 1)));
+2295: ind_loc = <int *> malloc(sizeof(int) * 1)
__pyx_v_ind_loc = ((int *)malloc(((sizeof(int)) * 1)));
+2296: if is_out_struct:
__pyx_t_1 = (__pyx_v_is_out_struct != 0);
if (__pyx_t_1) {
/* … */
}
2297: # if the structure is "out" (solid) we need more arrays
+2298: last_pout = <double *> malloc(sizeof(double) * 3)
__pyx_v_last_pout = ((double *)malloc(((sizeof(double)) * 3)));
+2299: invr_ray = <double *> malloc(sizeof(double) * 3)
__pyx_v_invr_ray = ((double *)malloc(((sizeof(double)) * 3)));
+2300: lim_ves = <double *> malloc(sizeof(double) * 2)
__pyx_v_lim_ves = ((double *)malloc(((sizeof(double)) * 2)));
+2301: sign_ray = <int *> malloc(sizeof(int) * 3)
__pyx_v_sign_ray = ((int *)malloc(((sizeof(int)) * 3)));
2302:
2303: # == The parallelization over the LOS ==================================
+2304: for ind_los in prange(num_los, schedule='dynamic'):
__pyx_t_2 = __pyx_v_num_los;
if (1 == 0) abort();
{
__pyx_t_4 = (__pyx_t_2 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_4 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_crit2) lastprivate(__pyx_v_dist) lastprivate(__pyx_v_dpar2) lastprivate(__pyx_v_forbidbis) lastprivate(__pyx_v_found_new_kout) lastprivate(__pyx_v_idpar2) lastprivate(__pyx_v_ii) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_struct) lastprivate(__pyx_v_inter_bbox) lastprivate(__pyx_v_invuz) lastprivate(__pyx_v_jj) lastprivate(__pyx_v_lim_is_none) lastprivate(__pyx_v_lim_max) lastprivate(__pyx_v_lim_min) lastprivate(__pyx_v_nvert) lastprivate(__pyx_v_s1x) lastprivate(__pyx_v_s1y) lastprivate(__pyx_v_s2x) lastprivate(__pyx_v_s2y) lastprivate(__pyx_v_totnvert) lastprivate(__pyx_v_upar2) lastprivate(__pyx_v_upscaDp) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_4; __pyx_t_3++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_3);
/* Initialize private variables to invalid values */
__pyx_v_crit2 = ((double)__PYX_NAN());
__pyx_v_dist = ((double)__PYX_NAN());
__pyx_v_dpar2 = ((double)__PYX_NAN());
__pyx_v_forbidbis = ((int)0xbad0bad0);
__pyx_v_found_new_kout = ((int)0xbad0bad0);
__pyx_v_idpar2 = ((double)__PYX_NAN());
__pyx_v_ii = ((int)0xbad0bad0);
__pyx_v_ind_struct = ((int)0xbad0bad0);
__pyx_v_inter_bbox = ((int)0xbad0bad0);
__pyx_v_invuz = ((double)__PYX_NAN());
__pyx_v_jj = ((int)0xbad0bad0);
__pyx_v_lim_is_none = ((int)0xbad0bad0);
__pyx_v_lim_max = ((double)__PYX_NAN());
__pyx_v_lim_min = ((double)__PYX_NAN());
__pyx_v_nvert = ((int)0xbad0bad0);
__pyx_v_s1x = ((double)__PYX_NAN());
__pyx_v_s1y = ((double)__PYX_NAN());
__pyx_v_s2x = ((double)__PYX_NAN());
__pyx_v_s2y = ((double)__PYX_NAN());
__pyx_v_totnvert = ((int)0xbad0bad0);
__pyx_v_upar2 = ((double)__PYX_NAN());
__pyx_v_upscaDp = ((double)__PYX_NAN());
+2305: ind_struct = 0
__pyx_v_ind_struct = 0;
+2306: loc_org[0] = ray_orig[0, ind_los]
__pyx_t_5 = 0;
__pyx_t_6 = __pyx_v_ind_los;
(__pyx_v_loc_org[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_5 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_6)) )));
+2307: loc_org[1] = ray_orig[1, ind_los]
__pyx_t_7 = 1;
__pyx_t_8 = __pyx_v_ind_los;
(__pyx_v_loc_org[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_7 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_8)) )));
+2308: loc_org[2] = ray_orig[2, ind_los]
__pyx_t_9 = 2;
__pyx_t_10 = __pyx_v_ind_los;
(__pyx_v_loc_org[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_9 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_10)) )));
+2309: loc_dir[0] = ray_vdir[0, ind_los]
__pyx_t_11 = 0;
__pyx_t_12 = __pyx_v_ind_los;
(__pyx_v_loc_dir[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_11 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_12)) )));
+2310: loc_dir[1] = ray_vdir[1, ind_los]
__pyx_t_13 = 1;
__pyx_t_14 = __pyx_v_ind_los;
(__pyx_v_loc_dir[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_13 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_14)) )));
+2311: loc_dir[2] = ray_vdir[2, ind_los]
__pyx_t_15 = 2;
__pyx_t_16 = __pyx_v_ind_los;
(__pyx_v_loc_dir[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_15 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_16)) )));
+2312: loc_vp[0] = 0.
(__pyx_v_loc_vp[0]) = 0.;
+2313: loc_vp[1] = 0.
(__pyx_v_loc_vp[1]) = 0.;
+2314: loc_vp[2] = 0.
(__pyx_v_loc_vp[2]) = 0.;
+2315: if is_out_struct:
__pyx_t_1 = (__pyx_v_is_out_struct != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
2316: # if structure is of "Out" type, then we compute the last
2317: # point where it went out of a structure.
+2318: ind_loc[0] = ind_inter_out[2+3*ind_los]
__pyx_t_17 = (2 + (3 * __pyx_v_ind_los));
(__pyx_v_ind_loc[0]) = (*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_17)) )));
+2319: kpin_loc[0] = coeff_inter_out[ind_los]
__pyx_t_18 = __pyx_v_ind_los;
(__pyx_v_kpin_loc[0]) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_18)) )));
+2320: last_pout[0] = kpin_loc[0] * loc_dir[0] + loc_org[0]
(__pyx_v_last_pout[0]) = (((__pyx_v_kpin_loc[0]) * (__pyx_v_loc_dir[0])) + (__pyx_v_loc_org[0]));
+2321: last_pout[1] = kpin_loc[0] * loc_dir[1] + loc_org[1]
(__pyx_v_last_pout[1]) = (((__pyx_v_kpin_loc[0]) * (__pyx_v_loc_dir[1])) + (__pyx_v_loc_org[1]));
+2322: last_pout[2] = kpin_loc[0] * loc_dir[2] + loc_org[2]
(__pyx_v_last_pout[2]) = (((__pyx_v_kpin_loc[0]) * (__pyx_v_loc_dir[2])) + (__pyx_v_loc_org[2]));
+2323: compute_inv_and_sign(loc_dir, sign_ray, invr_ray)
__pyx_f_4tofu_4geom_5_GG03_compute_inv_and_sign(__pyx_v_loc_dir, __pyx_v_sign_ray, __pyx_v_invr_ray);
2324: else:
+2325: kpout_loc[0] = 0
/*else*/ {
(__pyx_v_kpout_loc[0]) = 0.0;
+2326: kpin_loc[0] = 0
(__pyx_v_kpin_loc[0]) = 0.0;
+2327: ind_loc[0] = 0
(__pyx_v_ind_loc[0]) = 0;
}
__pyx_L15:;
2328:
2329: # -- Computing values that depend on the LOS/ray -------------------
+2330: upscaDp = loc_dir[0]*loc_org[0] + loc_dir[1]*loc_org[1]
__pyx_v_upscaDp = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_org[1])));
+2331: upar2 = loc_dir[0]*loc_dir[0] + loc_dir[1]*loc_dir[1]
__pyx_v_upar2 = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_dir[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_dir[1])));
+2332: dpar2 = loc_org[0]*loc_org[0] + loc_org[1]*loc_org[1]
__pyx_v_dpar2 = (((__pyx_v_loc_org[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_org[1]) * (__pyx_v_loc_org[1])));
+2333: idpar2 = 1./dpar2
__pyx_v_idpar2 = (1. / __pyx_v_dpar2);
+2334: invuz = 1./loc_dir[2]
__pyx_v_invuz = (1. / (__pyx_v_loc_dir[2]));
+2335: crit2 = upar2*crit2_base
__pyx_v_crit2 = (__pyx_v_upar2 * __pyx_v_crit2_base);
2336:
2337: # -- Prepare in case forbid is True --------------------------------
+2338: if forbid0 and not dpar2>0:
__pyx_t_19 = (__pyx_v_forbid0 != 0);
if (__pyx_t_19) {
} else {
__pyx_t_1 = __pyx_t_19;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_19 = ((!((__pyx_v_dpar2 > 0.0) != 0)) != 0);
__pyx_t_1 = __pyx_t_19;
__pyx_L17_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+2339: forbidbis = 0
__pyx_v_forbidbis = 0;
+2340: if forbidbis:
__pyx_t_1 = (__pyx_v_forbidbis != 0);
if (__pyx_t_1) {
/* … */
}
2341: # Compute coordinates of the 2 points where the tangents touch
2342: # the inner circle
+2343: dist = Csqrt(dpar2-rmin2)
__pyx_v_dist = sqrt((__pyx_v_dpar2 - __pyx_v_rmin2));
+2344: s1x = (rmin2 * loc_org[0] + rmin * loc_org[1] * dist) * idpar2
__pyx_v_s1x = (((__pyx_v_rmin2 * (__pyx_v_loc_org[0])) + ((__pyx_v_rmin * (__pyx_v_loc_org[1])) * __pyx_v_dist)) * __pyx_v_idpar2);
+2345: s1y = (rmin2 * loc_org[1] - rmin * loc_org[0] * dist) * idpar2
__pyx_v_s1y = (((__pyx_v_rmin2 * (__pyx_v_loc_org[1])) - ((__pyx_v_rmin * (__pyx_v_loc_org[0])) * __pyx_v_dist)) * __pyx_v_idpar2);
+2346: s2x = (rmin2 * loc_org[0] - rmin * loc_org[1] * dist) * idpar2
__pyx_v_s2x = (((__pyx_v_rmin2 * (__pyx_v_loc_org[0])) - ((__pyx_v_rmin * (__pyx_v_loc_org[1])) * __pyx_v_dist)) * __pyx_v_idpar2);
+2347: s2y = (rmin2 * loc_org[1] + rmin * loc_org[0] * dist) * idpar2
__pyx_v_s2y = (((__pyx_v_rmin2 * (__pyx_v_loc_org[1])) + ((__pyx_v_rmin * (__pyx_v_loc_org[0])) * __pyx_v_dist)) * __pyx_v_idpar2);
2348:
2349: # == Case "OUT" structure ==========================================
+2350: if is_out_struct:
__pyx_t_1 = (__pyx_v_is_out_struct != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L20;
}
2351: # We work on each structure
+2352: for ii in range(nstruct_lim):
__pyx_t_20 = __pyx_v_nstruct_lim;
__pyx_t_21 = __pyx_t_20;
for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
__pyx_v_ii = __pyx_t_22;
2353: # -- Getting structure's data ------------------------------
+2354: if ii == 0:
__pyx_t_1 = ((__pyx_v_ii == 0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L23;
}
+2355: nvert = lnvert[0]
__pyx_v_nvert = (__pyx_v_lnvert[0]);
+2356: totnvert = 0
__pyx_v_totnvert = 0;
2357: else:
+2358: totnvert = lnvert[ii-1]
/*else*/ {
__pyx_v_totnvert = (__pyx_v_lnvert[(__pyx_v_ii - 1)]);
+2359: nvert = lnvert[ii] - totnvert
__pyx_v_nvert = ((__pyx_v_lnvert[__pyx_v_ii]) - __pyx_v_totnvert);
}
__pyx_L23:;
+2360: ind_struct = lsz_lim[ii]
__pyx_v_ind_struct = (__pyx_v_lsz_lim[__pyx_v_ii]);
2361: # -- Working on the structure limited ----------------------
+2362: for jj in range(lstruct_nlim[ii]):
__pyx_t_23 = __pyx_v_ii;
__pyx_t_24 = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lstruct_nlim.data) + __pyx_t_23)) )));
__pyx_t_25 = __pyx_t_24;
for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
__pyx_v_jj = __pyx_t_26;
+2363: lim_min = langles[(ind_struct+jj)*2]
__pyx_v_lim_min = (__pyx_v_langles[((__pyx_v_ind_struct + __pyx_v_jj) * 2)]);
+2364: lim_max = langles[(ind_struct+jj)*2 + 1]
__pyx_v_lim_max = (__pyx_v_langles[(((__pyx_v_ind_struct + __pyx_v_jj) * 2) + 1)]);
+2365: lim_is_none = lis_limited[ind_struct+jj] == 1
__pyx_v_lim_is_none = ((__pyx_v_lis_limited[(__pyx_v_ind_struct + __pyx_v_jj)]) == 1);
2366: # We test if it is really necessary to compute the inter
2367: # ie. we check if the ray intersects the bounding box
+2368: inter_bbox = inter_ray_aabb_box(sign_ray, invr_ray,
__pyx_t_27.__pyx_n = 1;
__pyx_t_27.countin = 1;
__pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03_inter_ray_aabb_box(__pyx_v_sign_ray, __pyx_v_invr_ray, (&(__pyx_v_lbounds[((__pyx_v_ind_struct + __pyx_v_jj) * 6)])), __pyx_v_loc_org, &__pyx_t_27);
__pyx_v_inter_bbox = __pyx_t_1;
2369: &lbounds[(ind_struct + jj)*6],
2370: loc_org,
2371: countin=True)
+2372: if not inter_bbox:
__pyx_t_1 = ((!(__pyx_v_inter_bbox != 0)) != 0);
if (__pyx_t_1) {
/* … */
}
+2373: continue
goto __pyx_L24_continue;
2374: # We check that the bounding box is not "behind"
2375: # the last POut encountered
+2376: inter_bbox = inter_ray_aabb_box(sign_ray, invr_ray,
__pyx_t_27.__pyx_n = 1;
__pyx_t_27.countin = 0;
__pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03_inter_ray_aabb_box(__pyx_v_sign_ray, __pyx_v_invr_ray, (&(__pyx_v_lbounds[((__pyx_v_ind_struct + __pyx_v_jj) * 6)])), __pyx_v_last_pout, &__pyx_t_27);
__pyx_v_inter_bbox = __pyx_t_1;
2377: &lbounds[(ind_struct + jj)*6],
2378: last_pout, countin=False)
+2379: if inter_bbox:
__pyx_t_1 = (__pyx_v_inter_bbox != 0);
if (__pyx_t_1) {
/* … */
}
+2380: continue
goto __pyx_L24_continue;
2381: # Else, we compute the new values
2382: found_new_kout \
+2383: = comp_inter_los_vpoly(loc_org,
__pyx_v_found_new_kout = __pyx_f_4tofu_4geom_5_GG03_comp_inter_los_vpoly(__pyx_v_loc_org, __pyx_v_loc_dir, (&(__pyx_v_lstruct_polyx[__pyx_v_totnvert])), (&(__pyx_v_lstruct_polyy[__pyx_v_totnvert])), (&(__pyx_v_lstruct_normx[(__pyx_v_totnvert - __pyx_v_ii)])), (&(__pyx_v_lstruct_normy[(__pyx_v_totnvert - __pyx_v_ii)])), (__pyx_v_nvert - 1), __pyx_v_lim_is_none, __pyx_v_lim_min, __pyx_v_lim_max, __pyx_v_forbidbis, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_s1x, __pyx_v_s1y, __pyx_v_s2x, __pyx_v_s2y, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_eps_plane, 0, __pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_ind_loc, __pyx_v_loc_vp, NULL);
2384: loc_dir,
2385: &lstruct_polyx[totnvert],
2386: &lstruct_polyy[totnvert],
2387: &lstruct_normx[totnvert - ii],
2388: &lstruct_normy[totnvert - ii],
2389: nvert-1,
2390: lim_is_none,
2391: lim_min, lim_max,
2392: forbidbis,
2393: upscaDp, upar2,
2394: dpar2, invuz,
2395: s1x, s1y,
2396: s2x, s2y,
2397: crit2, eps_uz,
2398: eps_vz, eps_a,
2399: eps_b, eps_plane,
2400: False,
2401: kpin_loc,
2402: kpout_loc,
2403: ind_loc,
2404: loc_vp)
+2405: if found_new_kout :
__pyx_t_1 = (__pyx_v_found_new_kout != 0);
if (__pyx_t_1) {
/* … */
}
__pyx_L24_continue:;
}
}
+2406: coeff_inter_out[ind_los] = kpin_loc[0]
__pyx_t_28 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_28)) )) = (__pyx_v_kpin_loc[0]);
+2407: vperp_out[0+3*ind_los] = loc_vp[0]
__pyx_t_29 = (0 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_29)) )) = (__pyx_v_loc_vp[0]);
+2408: vperp_out[1+3*ind_los] = loc_vp[1]
__pyx_t_30 = (1 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_30)) )) = (__pyx_v_loc_vp[1]);
+2409: vperp_out[2+3*ind_los] = loc_vp[2]
__pyx_t_31 = (2 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_31)) )) = (__pyx_v_loc_vp[2]);
+2410: ind_inter_out[2+3*ind_los] = ind_loc[0]
__pyx_t_32 = (2 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_32)) )) = (__pyx_v_ind_loc[0]);
+2411: ind_inter_out[0+3*ind_los] = 1+ii
/* "tofu/geom/_GG03.pyx":2411
* vperp_out[2+3*ind_los] = loc_vp[2]
* ind_inter_out[2+3*ind_los] = ind_loc[0]
* ind_inter_out[0+3*ind_los] = 1+ii # <<<<<<<<<<<<<<
* ind_inter_out[1+3*ind_los] = jj
* last_pout[0] = (coeff_inter_out[ind_los] *
*/
__pyx_t_33 = (0 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_33)) )) = (1 + __pyx_v_ii);
+2412: ind_inter_out[1+3*ind_los] = jj
__pyx_t_34 = (1 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_34)) )) = __pyx_v_jj;
+2413: last_pout[0] = (coeff_inter_out[ind_los] *
/* "tofu/geom/_GG03.pyx":2413
* ind_inter_out[0+3*ind_los] = 1+ii
* ind_inter_out[1+3*ind_los] = jj
* last_pout[0] = (coeff_inter_out[ind_los] * # <<<<<<<<<<<<<<
* loc_dir[0]) + loc_org[0]
* last_pout[1] = (coeff_inter_out[ind_los] *
*/
__pyx_t_35 = __pyx_v_ind_los;
/* … */
(__pyx_v_last_pout[0]) = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_35)) ))) * (__pyx_v_loc_dir[0])) + (__pyx_v_loc_org[0]));
2414: loc_dir[0]) + loc_org[0]
+2415: last_pout[1] = (coeff_inter_out[ind_los] *
/* "tofu/geom/_GG03.pyx":2415
* last_pout[0] = (coeff_inter_out[ind_los] *
* loc_dir[0]) + loc_org[0]
* last_pout[1] = (coeff_inter_out[ind_los] * # <<<<<<<<<<<<<<
* loc_dir[1]) + loc_org[1]
* last_pout[2] = (coeff_inter_out[ind_los] *
*/
__pyx_t_36 = __pyx_v_ind_los;
/* … */
(__pyx_v_last_pout[1]) = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_36)) ))) * (__pyx_v_loc_dir[1])) + (__pyx_v_loc_org[1]));
2416: loc_dir[1]) + loc_org[1]
+2417: last_pout[2] = (coeff_inter_out[ind_los] *
__pyx_t_37 = __pyx_v_ind_los;
/* … */
(__pyx_v_last_pout[2]) = (((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_37)) ))) * (__pyx_v_loc_dir[2])) + (__pyx_v_loc_org[2]));
2418: loc_dir[2]) + loc_org[2]
2419: else:
2420: # == Case "IN" structure =======================================
2421: # Nothing to do but compute intersection between vessel and LOS
+2422: found_new_kout = comp_inter_los_vpoly(loc_org, loc_dir,
/*else*/ {
/* … */
__pyx_v_found_new_kout = __pyx_f_4tofu_4geom_5_GG03_comp_inter_los_vpoly(__pyx_v_loc_org, __pyx_v_loc_dir, __pyx_v_lstruct_polyx, __pyx_v_lstruct_polyy, __pyx_v_lstruct_normx, __pyx_v_lstruct_normy, __pyx_v_nstruct_lim, (__pyx_v_lis_limited[0]), (__pyx_v_langles[0]), (__pyx_v_langles[1]), __pyx_v_forbidbis, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_s1x, __pyx_v_s1y, __pyx_v_s2x, __pyx_v_s2y, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_eps_plane, 1, __pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_ind_loc, __pyx_v_loc_vp, NULL);
2423: lstruct_polyx,
2424: lstruct_polyy,
2425: lstruct_normx,
2426: lstruct_normy,
2427: nstruct_lim,
2428: lis_limited[0],
2429: langles[0], langles[1],
2430: forbidbis,
2431: upscaDp, upar2,
2432: dpar2, invuz,
2433: s1x, s1y, s2x, s2y,
2434: crit2, eps_uz, eps_vz,
2435: eps_a,eps_b, eps_plane,
2436: True,
2437: kpin_loc, kpout_loc,
2438: ind_loc, loc_vp)
+2439: if found_new_kout:
__pyx_t_1 = (__pyx_v_found_new_kout != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L29;
}
+2440: coeff_inter_in[ind_los] = kpin_loc[0]
__pyx_t_38 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_in.data) + __pyx_t_38)) )) = (__pyx_v_kpin_loc[0]);
+2441: coeff_inter_out[ind_los] = kpout_loc[0]
__pyx_t_39 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_39)) )) = (__pyx_v_kpout_loc[0]);
+2442: ind_inter_out[2+3*ind_los] = ind_loc[0]
__pyx_t_40 = (2 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_40)) )) = (__pyx_v_ind_loc[0]);
+2443: ind_inter_out[0+3*ind_los] = 0
__pyx_t_41 = (0 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_41)) )) = 0;
+2444: ind_inter_out[1+3*ind_los] = 0
__pyx_t_42 = (1 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_42)) )) = 0;
+2445: vperp_out[0+3*ind_los] = loc_vp[0]
__pyx_t_43 = (0 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_43)) )) = (__pyx_v_loc_vp[0]);
+2446: vperp_out[1+3*ind_los] = loc_vp[1]
__pyx_t_44 = (1 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_44)) )) = (__pyx_v_loc_vp[1]);
+2447: vperp_out[2+3*ind_los] = loc_vp[2]
__pyx_t_45 = (2 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_45)) )) = (__pyx_v_loc_vp[2]);
2448:
2449: else:
+2450: coeff_inter_in[ind_los] = Cnan
/*else*/ {
__pyx_t_46 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_in.data) + __pyx_t_46)) )) = NAN;
+2451: coeff_inter_out[ind_los] = Cnan
__pyx_t_47 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_coeff_inter_out.data) + __pyx_t_47)) )) = NAN;
+2452: ind_inter_out[2+3*ind_los] = 0
__pyx_t_48 = (2 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_48)) )) = 0;
+2453: ind_inter_out[0+3*ind_los] = 0
__pyx_t_49 = (0 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_49)) )) = 0;
+2454: ind_inter_out[1+3*ind_los] = 0
__pyx_t_50 = (1 + (3 * __pyx_v_ind_los));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_inter_out.data) + __pyx_t_50)) )) = 0;
+2455: vperp_out[0+3*ind_los] = 0.
__pyx_t_51 = (0 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_51)) )) = 0.;
+2456: vperp_out[1+3*ind_los] = 0.
__pyx_t_52 = (1 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_52)) )) = 0.;
+2457: vperp_out[2+3*ind_los] = 0.
__pyx_t_53 = (2 + (3 * __pyx_v_ind_los));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperp_out.data) + __pyx_t_53)) )) = 0.;
}
__pyx_L29:;
}
__pyx_L20:;
}
}
}
}
2458: # end case IN/OUT
+2459: free(loc_org)
free(__pyx_v_loc_org);
+2460: free(loc_dir)
free(__pyx_v_loc_dir);
+2461: free(loc_vp)
free(__pyx_v_loc_vp);
+2462: free(kpin_loc)
free(__pyx_v_kpin_loc);
+2463: free(kpout_loc)
free(__pyx_v_kpout_loc);
+2464: free(ind_loc)
free(__pyx_v_ind_loc);
+2465: if is_out_struct:
__pyx_t_1 = (__pyx_v_is_out_struct != 0);
if (__pyx_t_1) {
/* … */
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+2466: free(last_pout)
free(__pyx_v_last_pout);
+2467: free(lim_ves)
free(__pyx_v_lim_ves);
+2468: free(invr_ray)
free(__pyx_v_invr_ray);
+2469: free(sign_ray)
free(__pyx_v_sign_ray);
+2470: return
goto __pyx_L0;
2471:
2472:
+2473: cdef inline void raytracing_inout_struct_lin(int Nl,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_raytracing_inout_struct_lin(int __pyx_v_Nl, __Pyx_memviewslice __pyx_v_Ds, __Pyx_memviewslice __pyx_v_us, int __pyx_v_Ns, double *__pyx_v_polyx_tab, double *__pyx_v_polyy_tab, double *__pyx_v_normx_tab, double *__pyx_v_normy_tab, double __pyx_v_L0, double __pyx_v_L1, __Pyx_memviewslice __pyx_v_kin_tab, __Pyx_memviewslice __pyx_v_kout_tab, __Pyx_memviewslice __pyx_v_vperpout_tab, __Pyx_memviewslice __pyx_v_indout_tab, double __pyx_v_EpsPlane, int __pyx_v_ind_struct, int __pyx_v_ind_lim_struct) {
int __pyx_v_is_in_path;
int __pyx_v_ii;
int __pyx_v_jj;
double __pyx_v_kin;
double __pyx_v_kout;
double __pyx_v_scauVin;
double __pyx_v_q;
double __pyx_v_X;
double __pyx_v_sca;
int __pyx_v_indin;
int __pyx_v_indout;
int __pyx_v_Done;
PyObject *__pyx_v_k = NULL;
double __pyx_v_V1;
double __pyx_v_V2;
PyObject *__pyx_v_warn = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("raytracing_inout_struct_lin", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_21);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_XDECREF(__pyx_t_27);
__Pyx_XDECREF(__pyx_t_32);
__Pyx_WriteUnraisable("tofu.geom._GG03.raytracing_inout_struct_lin", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_RefNannyFinishContext();
}
2474: double[:,::1] Ds,
2475: double [:,::1] us,
2476: int Ns, # VIn.shape[1]
2477: double* polyx_tab,
2478: double* polyy_tab,
2479: double* normx_tab,
2480: double* normy_tab,
2481: double L0, double L1,
2482: double[::1] kin_tab,
2483: double[::1] kout_tab,
2484: double[::1] vperpout_tab,
2485: int[::1] indout_tab,
2486: double EpsPlane,
2487: int ind_struct,
2488: int ind_lim_struct):
2489:
2490: cdef bint is_in_path
+2491: cdef int ii=0, jj=0
__pyx_v_ii = 0; __pyx_v_jj = 0;
2492: cdef double kin, kout, scauVin, q, X, sca
+2493: cdef int indin=0, indout=0, Done=0
__pyx_v_indin = 0; __pyx_v_indout = 0; __pyx_v_Done = 0;
2494:
+2495: if ind_struct == 0 and ind_lim_struct == 0 :
__pyx_t_2 = ((__pyx_v_ind_struct == 0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ind_lim_struct == 0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
2496: # If it is the first struct,
2497: # we have to initialize values even if no impact
+2498: kin_tab[ii] = Cnan
__pyx_t_3 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kin_tab.data) + __pyx_t_3)) )) = NAN;
+2499: kout_tab[ii] = Cnan
__pyx_t_4 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kout_tab.data) + __pyx_t_4)) )) = NAN;
2500:
+2501: for ii in range(0,Nl):
__pyx_t_5 = __pyx_v_Nl;
__pyx_t_6 = __pyx_t_5;
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
__pyx_v_ii = __pyx_t_7;
+2502: kout, kin, Done = 1.e12, 1e12, 0
__pyx_t_8 = 1.e12;
__pyx_t_9 = 1e12;
__pyx_t_10 = 0;
__pyx_v_kout = __pyx_t_8;
__pyx_v_kin = __pyx_t_9;
__pyx_v_Done = __pyx_t_10;
2503: # For cylinder
+2504: for jj in range(0,Ns):
__pyx_t_10 = __pyx_v_Ns;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_jj = __pyx_t_12;
+2505: scauVin = us[1,ii] * normx_tab[jj] + us[2,ii] * normy_tab[jj]
__pyx_t_13 = 1;
__pyx_t_14 = __pyx_v_ii;
__pyx_t_15 = 2;
__pyx_t_16 = __pyx_v_ii;
__pyx_v_scauVin = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_13 * __pyx_v_us.strides[0]) )) + __pyx_t_14)) ))) * (__pyx_v_normx_tab[__pyx_v_jj])) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_15 * __pyx_v_us.strides[0]) )) + __pyx_t_16)) ))) * (__pyx_v_normy_tab[__pyx_v_jj])));
2506: # Only if plane not parallel to line
+2507: if Cabs(scauVin)>EpsPlane:
__pyx_t_1 = ((fabs(__pyx_v_scauVin) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_1) {
/* … */
}
}
+2508: k = -( (Ds[1,ii] - polyx_tab[jj]) * normx_tab[jj] +
__pyx_t_17 = 1;
__pyx_t_18 = __pyx_v_ii;
+2509: (Ds[2,ii] - polyy_tab[jj]) * normy_tab[jj]) \
__pyx_t_19 = 2;
__pyx_t_20 = __pyx_v_ii;
+2510: / scauVin
__pyx_t_21 = PyFloat_FromDouble(((-((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_17 * __pyx_v_Ds.strides[0]) )) + __pyx_t_18)) ))) - (__pyx_v_polyx_tab[__pyx_v_jj])) * (__pyx_v_normx_tab[__pyx_v_jj])) + (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_19 * __pyx_v_Ds.strides[0]) )) + __pyx_t_20)) ))) - (__pyx_v_polyy_tab[__pyx_v_jj])) * (__pyx_v_normy_tab[__pyx_v_jj])))) / __pyx_v_scauVin)); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_21); __pyx_t_21 = 0;
2511: # Only if on good side of semi-line
+2512: if k>=0.:
__pyx_t_21 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2512, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2512, __pyx_L1_error) __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; if (__pyx_t_1) { /* … */ }
+2513: V1 = polyx_tab[jj+1]-polyx_tab[jj]
__pyx_v_V1 = ((__pyx_v_polyx_tab[(__pyx_v_jj + 1)]) - (__pyx_v_polyx_tab[__pyx_v_jj]));
+2514: V2 = polyy_tab[jj+1]-polyy_tab[jj]
__pyx_v_V2 = ((__pyx_v_polyy_tab[(__pyx_v_jj + 1)]) - (__pyx_v_polyy_tab[__pyx_v_jj]));
+2515: if (V1**2 + V2**2 > _VSMALL):
__pyx_t_1 = (((pow(__pyx_v_V1, 2.0) + pow(__pyx_v_V2, 2.0)) > __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L12;
}
+2516: q = ( (Ds[1,ii] + k * us[1,ii] - polyx_tab[jj]) * V1
__pyx_t_22 = 1;
__pyx_t_23 = __pyx_v_ii;
__pyx_t_21 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_22 * __pyx_v_Ds.strides[0]) )) + __pyx_t_23)) )))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_24 = 1;
__pyx_t_25 = __pyx_v_ii;
__pyx_t_26 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_24 * __pyx_v_us.strides[0]) )) + __pyx_t_25)) )))); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_27 = PyNumber_Multiply(__pyx_v_k, __pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_26 = PyNumber_Add(__pyx_t_21, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
__pyx_t_27 = PyFloat_FromDouble((__pyx_v_polyx_tab[__pyx_v_jj])); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__pyx_t_21 = PyNumber_Subtract(__pyx_t_26, __pyx_t_27); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
__pyx_t_27 = PyFloat_FromDouble(__pyx_v_V1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__pyx_t_26 = PyNumber_Multiply(__pyx_t_21, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2516, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2517: + (Ds[2,ii] + k * us[2,ii] - polyy_tab[jj]) * V2) \
__pyx_t_28 = 2;
__pyx_t_29 = __pyx_v_ii;
__pyx_t_27 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_28 * __pyx_v_Ds.strides[0]) )) + __pyx_t_29)) )))); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__pyx_t_30 = 2;
__pyx_t_31 = __pyx_v_ii;
__pyx_t_21 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_30 * __pyx_v_us.strides[0]) )) + __pyx_t_31)) )))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_32 = PyNumber_Multiply(__pyx_v_k, __pyx_t_21); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Add(__pyx_t_27, __pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_32 = PyFloat_FromDouble((__pyx_v_polyy_tab[__pyx_v_jj])); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_27 = PyNumber_Subtract(__pyx_t_21, __pyx_t_32); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_27);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_32 = PyFloat_FromDouble(__pyx_v_V2); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_21 = PyNumber_Multiply(__pyx_t_27, __pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_32 = PyNumber_Add(__pyx_t_26, __pyx_t_21); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2517, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2518: / (V1*V1 + V2*V2)
__pyx_t_21 = PyFloat_FromDouble(((__pyx_v_V1 * __pyx_v_V1) + (__pyx_v_V2 * __pyx_v_V2))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_21); __pyx_t_26 = __Pyx_PyNumber_Divide(__pyx_t_32, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2518, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0; __pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_26); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2518, __pyx_L1_error) __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_v_q = __pyx_t_9;
2519: # Only of on the fraction of plane
+2520: if q>=0. and q<1.:
__pyx_t_2 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_q < 1.) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L14_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+2521: X = Ds[0,ii] + k*us[0,ii]
__pyx_t_33 = 0;
__pyx_t_34 = __pyx_v_ii;
__pyx_t_26 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_33 * __pyx_v_Ds.strides[0]) )) + __pyx_t_34)) )))); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2521, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_35 = 0;
__pyx_t_36 = __pyx_v_ii;
__pyx_t_21 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_35 * __pyx_v_us.strides[0]) )) + __pyx_t_36)) )))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2521, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_32 = PyNumber_Multiply(__pyx_v_k, __pyx_t_21); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2521, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Add(__pyx_t_26, __pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2521, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_21); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2521, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_v_X = __pyx_t_9;
2522: # Only if within limits
+2523: if X>=L0 and X<=L1:
__pyx_t_2 = ((__pyx_v_X >= __pyx_v_L0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_X <= __pyx_v_L1) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L17_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+2524: sca = us[1,ii] * normx_tab[jj] \
__pyx_t_37 = 1;
__pyx_t_38 = __pyx_v_ii;
+2525: + us[2,ii] * normy_tab[jj]
__pyx_t_39 = 2;
__pyx_t_40 = __pyx_v_ii;
__pyx_v_sca = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_37 * __pyx_v_us.strides[0]) )) + __pyx_t_38)) ))) * (__pyx_v_normx_tab[__pyx_v_jj])) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_39 * __pyx_v_us.strides[0]) )) + __pyx_t_40)) ))) * (__pyx_v_normy_tab[__pyx_v_jj])));
2526: # Only if new
+2527: if sca<=0 and k<kout:
__pyx_t_2 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2527, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_32 = PyObject_RichCompare(__pyx_v_k, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_32); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2527, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_32); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2527, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L19;
}
+2528: kout = k
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2528, __pyx_L1_error) __pyx_v_kout = __pyx_t_9;
+2529: indout = jj
__pyx_v_indout = __pyx_v_jj;
+2530: Done = 1
__pyx_v_Done = 1;
+2531: elif sca>=0 and k<min(kin,kout):
__pyx_t_2 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L22_bool_binop_done;
}
__pyx_t_9 = __pyx_v_kout;
__pyx_t_8 = __pyx_v_kin;
if (((__pyx_t_9 < __pyx_t_8) != 0)) {
__pyx_t_41 = __pyx_t_9;
} else {
__pyx_t_41 = __pyx_t_8;
}
__pyx_t_32 = PyFloat_FromDouble(__pyx_t_41); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2531, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_21 = PyObject_RichCompare(__pyx_v_k, __pyx_t_32, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2531, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2531, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L22_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L19:;
+2532: kin = k
__pyx_t_41 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_41 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2532, __pyx_L1_error) __pyx_v_kin = __pyx_t_41;
+2533: indin = jj
__pyx_v_indin = __pyx_v_jj;
2534: else:
+2535: from warnings import warn
/*else*/ {
__pyx_t_21 = PyList_New(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_INCREF(__pyx_n_s_warn);
__Pyx_GIVEREF(__pyx_n_s_warn);
PyList_SET_ITEM(__pyx_t_21, 0, __pyx_n_s_warn);
__pyx_t_32 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_21, -1); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = __Pyx_ImportFrom(__pyx_t_32, __pyx_n_s_warn); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2535, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_INCREF(__pyx_t_21);
__Pyx_XDECREF_SET(__pyx_v_warn, __pyx_t_21);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
+2536: warn("The polygon has double identical points",
__pyx_t_32 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_32); __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; } __pyx_L12:; /* … */ __pyx_tuple__72 = PyTuple_Pack(2, __pyx_kp_s_The_polygon_has_double_identical, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(0, 2536, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__72); __Pyx_GIVEREF(__pyx_tuple__72);
2537: Warning)
2538: # For two faces
2539: # Only if plane not parallel to line
+2540: if Cabs(us[0,ii])>EpsPlane:
__pyx_t_42 = 0;
__pyx_t_43 = __pyx_v_ii;
__pyx_t_1 = ((fabs((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_42 * __pyx_v_us.strides[0]) )) + __pyx_t_43)) )))) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_1) {
/* … */
}
2541: # First face
+2542: k = -(Ds[0,ii]-L0)/us[0,ii]
__pyx_t_44 = 0;
__pyx_t_45 = __pyx_v_ii;
__pyx_t_46 = 0;
__pyx_t_47 = __pyx_v_ii;
__pyx_t_32 = PyFloat_FromDouble(((-((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_44 * __pyx_v_Ds.strides[0]) )) + __pyx_t_45)) ))) - __pyx_v_L0)) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_46 * __pyx_v_us.strides[0]) )) + __pyx_t_47)) ))))); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2542, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_32);
__pyx_t_32 = 0;
2543: # Only if on good side of semi-line
+2544: if k>=0.:
__pyx_t_32 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_32); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2544, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_32); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2544, __pyx_L1_error) __Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0; if (__pyx_t_1) { /* … */ }
2545: # Only if inside VPoly
+2546: is_in_path = is_point_in_path(Ns, polyx_tab, polyy_tab,
__pyx_v_is_in_path = __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(__pyx_v_Ns, __pyx_v_polyx_tab, __pyx_v_polyy_tab, __pyx_t_41, __pyx_t_9);
+2547: Ds[1,ii]+k*us[1,ii],
__pyx_t_48 = 1;
__pyx_t_49 = __pyx_v_ii;
__pyx_t_32 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_48 * __pyx_v_Ds.strides[0]) )) + __pyx_t_49)) )))); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2547, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_50 = 1;
__pyx_t_51 = __pyx_v_ii;
__pyx_t_21 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_50 * __pyx_v_us.strides[0]) )) + __pyx_t_51)) )))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2547, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_26 = PyNumber_Multiply(__pyx_v_k, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2547, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Add(__pyx_t_32, __pyx_t_26); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2547, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_41 = __pyx_PyFloat_AsDouble(__pyx_t_21); if (unlikely((__pyx_t_41 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2547, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2548: Ds[2,ii]+k*us[2,ii])
__pyx_t_52 = 2;
__pyx_t_53 = __pyx_v_ii;
__pyx_t_21 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_52 * __pyx_v_Ds.strides[0]) )) + __pyx_t_53)) )))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_54 = 2;
__pyx_t_55 = __pyx_v_ii;
__pyx_t_26 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_54 * __pyx_v_us.strides[0]) )) + __pyx_t_55)) )))); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_32 = PyNumber_Multiply(__pyx_v_k, __pyx_t_26); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_26 = PyNumber_Add(__pyx_t_21, __pyx_t_32); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2548, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_26); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2548, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2549: if is_in_path:
__pyx_t_1 = (__pyx_v_is_in_path != 0);
if (__pyx_t_1) {
/* … */
}
+2550: if us[0,ii]<=0 and k<kout:
__pyx_t_56 = 0;
__pyx_t_57 = __pyx_v_ii;
__pyx_t_2 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_56 * __pyx_v_us.strides[0]) )) + __pyx_t_57)) ))) <= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L28_bool_binop_done;
}
__pyx_t_26 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2550, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_32 = PyObject_RichCompare(__pyx_v_k, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_32); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2550, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_32); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2550, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L28_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L27;
}
+2551: kout = k
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2551, __pyx_L1_error) __pyx_v_kout = __pyx_t_9;
+2552: indout = -1
__pyx_v_indout = -1;
+2553: Done = 1
__pyx_v_Done = 1;
+2554: elif us[0,ii]>=0 and k<min(kin,kout):
__pyx_t_58 = 0;
__pyx_t_59 = __pyx_v_ii;
__pyx_t_2 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_58 * __pyx_v_us.strides[0]) )) + __pyx_t_59)) ))) >= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_9 = __pyx_v_kout;
__pyx_t_41 = __pyx_v_kin;
if (((__pyx_t_9 < __pyx_t_41) != 0)) {
__pyx_t_8 = __pyx_t_9;
} else {
__pyx_t_8 = __pyx_t_41;
}
__pyx_t_32 = PyFloat_FromDouble(__pyx_t_8); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2554, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_26 = PyObject_RichCompare(__pyx_v_k, __pyx_t_32, Py_LT); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2554, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2554, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L30_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L27:;
+2555: kin = k
__pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2555, __pyx_L1_error) __pyx_v_kin = __pyx_t_8;
+2556: indin = -1
__pyx_v_indin = -1;
2557: # Second face
+2558: k = -(Ds[0,ii]-L1)/us[0,ii]
__pyx_t_60 = 0;
__pyx_t_61 = __pyx_v_ii;
__pyx_t_62 = 0;
__pyx_t_63 = __pyx_v_ii;
__pyx_t_26 = PyFloat_FromDouble(((-((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_60 * __pyx_v_Ds.strides[0]) )) + __pyx_t_61)) ))) - __pyx_v_L1)) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_62 * __pyx_v_us.strides[0]) )) + __pyx_t_63)) ))))); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2558, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF_SET(__pyx_v_k, __pyx_t_26);
__pyx_t_26 = 0;
2559: # Only if on good side of semi-line
+2560: if k>=0.:
__pyx_t_26 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2560, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 2560, __pyx_L1_error) __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; if (__pyx_t_1) { /* … */ }
2561: # Only if inside VPoly
+2562: is_in_path = is_point_in_path(Ns, polyx_tab, polyy_tab,
__pyx_v_is_in_path = __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(__pyx_v_Ns, __pyx_v_polyx_tab, __pyx_v_polyy_tab, __pyx_t_8, __pyx_t_9);
+2563: Ds[1,ii]+k*us[1,ii],
__pyx_t_64 = 1;
__pyx_t_65 = __pyx_v_ii;
__pyx_t_26 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_64 * __pyx_v_Ds.strides[0]) )) + __pyx_t_65)) )))); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_66 = 1;
__pyx_t_67 = __pyx_v_ii;
__pyx_t_32 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_66 * __pyx_v_us.strides[0]) )) + __pyx_t_67)) )))); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_21 = PyNumber_Multiply(__pyx_v_k, __pyx_t_32); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__pyx_t_32 = PyNumber_Add(__pyx_t_26, __pyx_t_21); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2563, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_32); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2563, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
+2564: Ds[2,ii]+k*us[2,ii])
__pyx_t_68 = 2;
__pyx_t_69 = __pyx_v_ii;
__pyx_t_32 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_68 * __pyx_v_Ds.strides[0]) )) + __pyx_t_69)) )))); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 2564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_32);
__pyx_t_70 = 2;
__pyx_t_71 = __pyx_v_ii;
__pyx_t_21 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_70 * __pyx_v_us.strides[0]) )) + __pyx_t_71)) )))); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_26 = PyNumber_Multiply(__pyx_v_k, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_21 = PyNumber_Add(__pyx_t_32, __pyx_t_26); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2564, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__Pyx_DECREF(__pyx_t_32); __pyx_t_32 = 0;
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_t_21); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2564, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2565: if is_in_path:
__pyx_t_1 = (__pyx_v_is_in_path != 0);
if (__pyx_t_1) {
/* … */
}
+2566: if us[0,ii]>=0 and k<kout:
__pyx_t_72 = 0;
__pyx_t_73 = __pyx_v_ii;
__pyx_t_2 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_72 * __pyx_v_us.strides[0]) )) + __pyx_t_73)) ))) >= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L35_bool_binop_done;
}
__pyx_t_21 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_21);
__pyx_t_26 = PyObject_RichCompare(__pyx_v_k, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_26); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2566, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_26); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2566, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L35_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L34;
}
+2567: kout = k
__pyx_t_9 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_9 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2567, __pyx_L1_error) __pyx_v_kout = __pyx_t_9;
+2568: indout = -2
__pyx_v_indout = -2;
+2569: Done = 1
__pyx_v_Done = 1;
+2570: elif us[0,ii]<=0 and k<min(kin,kout):
__pyx_t_74 = 0;
__pyx_t_75 = __pyx_v_ii;
__pyx_t_2 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_74 * __pyx_v_us.strides[0]) )) + __pyx_t_75)) ))) <= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L37_bool_binop_done;
}
__pyx_t_9 = __pyx_v_kout;
__pyx_t_8 = __pyx_v_kin;
if (((__pyx_t_9 < __pyx_t_8) != 0)) {
__pyx_t_41 = __pyx_t_9;
} else {
__pyx_t_41 = __pyx_t_8;
}
__pyx_t_26 = PyFloat_FromDouble(__pyx_t_41); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2570, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_26);
__pyx_t_21 = PyObject_RichCompare(__pyx_v_k, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2570, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 2570, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
__pyx_t_1 = __pyx_t_2;
__pyx_L37_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L34:;
+2571: kin = k
__pyx_t_41 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_41 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2571, __pyx_L1_error) __pyx_v_kin = __pyx_t_41;
+2572: indin = -2
__pyx_v_indin = -2;
2573: # == Analyzing if there was impact ====================================
+2574: if Done==1:
__pyx_t_1 = ((__pyx_v_Done == 1) != 0);
if (__pyx_t_1) {
/* … */
}
}
+2575: if (ind_struct == 0 and ind_lim_struct == 0):
__pyx_t_2 = ((__pyx_v_ind_struct == 0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_ind_lim_struct == 0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L41_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L40;
}
+2576: kout_tab[ii] = kout
__pyx_t_76 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kout_tab.data) + __pyx_t_76)) )) = __pyx_v_kout;
+2577: if kin < kout:
__pyx_t_1 = ((__pyx_v_kin < __pyx_v_kout) != 0);
if (__pyx_t_1) {
/* … */
}
+2578: kin_tab[ii] = kin
__pyx_t_77 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kin_tab.data) + __pyx_t_77)) )) = __pyx_v_kin;
2579: # To be finished
+2580: if indout==-1:
switch (__pyx_v_indout) {
case -1L:
/* … */
break;
case -2L:
+2581: vperpout_tab[0 + 3 * ii] = 1.
__pyx_t_78 = (0 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_78)) )) = 1.;
+2582: vperpout_tab[1 + 3 * ii] = 0.
__pyx_t_79 = (1 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_79)) )) = 0.;
+2583: vperpout_tab[2 + 3 * ii] = 0.
__pyx_t_80 = (2 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_80)) )) = 0.;
+2584: elif indout==-2:
break;
default:
+2585: vperpout_tab[0 + 3 * ii] = -1.
__pyx_t_81 = (0 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_81)) )) = -1.;
+2586: vperpout_tab[1 + 3 * ii] = 0.
__pyx_t_82 = (1 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_82)) )) = 0.;
+2587: vperpout_tab[2 + 3 * ii] = 0.
__pyx_t_83 = (2 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_83)) )) = 0.;
2588: else:
+2589: vperpout_tab[0 + 3 * ii] = 0.
__pyx_t_84 = (0 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_84)) )) = 0.;
+2590: vperpout_tab[1 + 3 * ii] = normx_tab[indout]
__pyx_t_85 = (1 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_85)) )) = (__pyx_v_normx_tab[__pyx_v_indout]);
+2591: vperpout_tab[2 + 3 * ii] = normy_tab[indout]
__pyx_t_86 = (2 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_86)) )) = (__pyx_v_normy_tab[__pyx_v_indout]);
break;
}
+2592: indout_tab[0 + 3 * ii] = 0
__pyx_t_87 = (0 + (3 * __pyx_v_ii));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_indout_tab.data) + __pyx_t_87)) )) = 0;
+2593: indout_tab[1 + 3 * ii] = 0
__pyx_t_88 = (1 + (3 * __pyx_v_ii));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_indout_tab.data) + __pyx_t_88)) )) = 0;
+2594: indout_tab[2 + 3 * ii] = indout
__pyx_t_89 = (2 + (3 * __pyx_v_ii));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_indout_tab.data) + __pyx_t_89)) )) = __pyx_v_indout;
+2595: elif kin<kout_tab[ii] and kin < kout:
__pyx_t_90 = __pyx_v_ii;
__pyx_t_2 = ((__pyx_v_kin < (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kout_tab.data) + __pyx_t_90)) )))) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_kin < __pyx_v_kout) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L44_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L40:;
+2596: kout_tab[ii] = kin
__pyx_t_91 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kout_tab.data) + __pyx_t_91)) )) = __pyx_v_kin;
+2597: indout_tab[0 + 3 * ii] = ind_struct
__pyx_t_92 = (0 + (3 * __pyx_v_ii));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_indout_tab.data) + __pyx_t_92)) )) = __pyx_v_ind_struct;
+2598: indout_tab[1 + 3 * ii] = ind_lim_struct
__pyx_t_93 = (1 + (3 * __pyx_v_ii));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_indout_tab.data) + __pyx_t_93)) )) = __pyx_v_ind_lim_struct;
+2599: indout_tab[2 + 3 * ii] = indin
__pyx_t_94 = (2 + (3 * __pyx_v_ii));
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_indout_tab.data) + __pyx_t_94)) )) = __pyx_v_indin;
+2600: if indout==-1:
switch (__pyx_v_indout) {
case -1L:
/* … */
break;
case -2L:
+2601: vperpout_tab[0 + 3 * ii] = 1.
__pyx_t_95 = (0 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_95)) )) = 1.;
+2602: vperpout_tab[1 + 3 * ii] = 0.
__pyx_t_96 = (1 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_96)) )) = 0.;
+2603: vperpout_tab[2 + 3 * ii] = 0.
__pyx_t_97 = (2 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_97)) )) = 0.;
+2604: elif indout==-2:
break;
default:
+2605: vperpout_tab[0 + 3 * ii] = -1.
__pyx_t_98 = (0 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_98)) )) = -1.;
+2606: vperpout_tab[1 + 3 * ii] = 0.
__pyx_t_99 = (1 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_99)) )) = 0.;
+2607: vperpout_tab[2 + 3 * ii] = 0.
__pyx_t_100 = (2 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_100)) )) = 0.;
2608: else:
+2609: vperpout_tab[0 + 3 * ii] = 0.
__pyx_t_101 = (0 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_101)) )) = 0.;
+2610: vperpout_tab[1 + 3 * ii] = normx_tab[indout]
__pyx_t_102 = (1 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_102)) )) = (__pyx_v_normx_tab[__pyx_v_indout]);
+2611: vperpout_tab[2 + 3 * ii] = normy_tab[indout]
__pyx_t_103 = (2 + (3 * __pyx_v_ii));
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_vperpout_tab.data) + __pyx_t_103)) )) = (__pyx_v_normy_tab[__pyx_v_indout]);
break;
}
+2612: return
goto __pyx_L0;
2613:
2614:
2615: # =============================================================================
2616: # = Ray tracing when we only want kMin / kMax
2617: # - (useful when working with flux surfaces)
2618: # =============================================================================
+2619: def LOS_Calc_kMinkMax_VesStruct(double[:, ::1] ray_orig,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_47LOS_Calc_kMinkMax_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_46LOS_Calc_kMinkMax_VesStruct[] = "\n Computes the entry and exit point of all provided LOS for the provided\n polygons (toroidal or linear) of IN structures (non-solid, or `empty`\n inside for the LOS).\n Attention: the surfaces can be limited, but they all have to have the\n same limits defined by (ves_lims)\n Return the set of kmin / kmax for each In struct and for each LOS\n\n Params\n ======\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS normalized direction vector\n num_surf : int\n number of surfaxes, aka 'in' structures or 'vessels'\n ves_poly : (num_surf, 2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the `in` structures\n ves_norm : (num_surf, 2, num_vertex-1) double array\n Normal vectors going \"inwards\" of the edges of the Polygon defined\n by ves_poly\n ves_lims : array\n Contains the limits min and max of vessel\n rmin : double\n Minimal radius of vessel to take into consideration\n eps<val> : double\n Small value, acceptance of error\n vtype : string\n Type of vessel (\"Tor\" or \"Lin\")\n forbid : bool\n Should we forbid values behind vissible radius ? (see rmin)\n test : bool\n Should we run tests ?\n num_threads : int\n The num_threads argument indicates how many threads the team should\n consist of. If not given, OpenMP will decide how many threads to use.\n Typically this is the number of cores available on the machine.\n Return\n ======\n coeff_inter_in : (num_surf, num_los) array\n scalars level of \"in\" intersection of the LOS (if k=0 at origin) for\n each surface\n [kmin(surf0, los0), kmin(surf0, los1), ..., kmin(surf1, los0),....]\n coeff_inter_out : (num_surf, num_los) array\n scalars level of \"out\" intersection of the LOS (if k=0 at origin) for\n ""each surface\n [kmax(surf0, los0), kmax(surf0, los1), ..., kmax(surf1, los0),....]\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_47LOS_Calc_kMinkMax_VesStruct = {"LOS_Calc_kMinkMax_VesStruct", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_47LOS_Calc_kMinkMax_VesStruct, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_46LOS_Calc_kMinkMax_VesStruct};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_47LOS_Calc_kMinkMax_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_ray_orig = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ray_vdir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ves_poly = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ves_norm = { 0, 0, { 0 }, { 0 }, { 0 } };
int __pyx_v_num_surf;
__Pyx_memviewslice __pyx_v_ves_lims = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_lnvert = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_rmin;
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
double __pyx_v_eps_plane;
PyObject *__pyx_v_ves_type = 0;
int __pyx_v_forbid;
int __pyx_v_test;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_Calc_kMinkMax_VesStruct (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_ves_norm,&__pyx_n_s_num_surf,&__pyx_n_s_ves_lims,&__pyx_n_s_lnvert,&__pyx_n_s_rmin,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_forbid,&__pyx_n_s_test,&__pyx_n_s_num_threads,0};
PyObject* values[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
values[13] = ((PyObject*)__pyx_n_s_Tor);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_kMinkMax_VesStruct", 0, 5, 17, 1); __PYX_ERR(0, 2619, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_kMinkMax_VesStruct", 0, 5, 17, 2); __PYX_ERR(0, 2619, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_norm)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_kMinkMax_VesStruct", 0, 5, 17, 3); __PYX_ERR(0, 2619, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_surf)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_Calc_kMinkMax_VesStruct", 0, 5, 17, 4); __PYX_ERR(0, 2619, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_lims);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lnvert);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rmin);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_forbid);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_test);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[16] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_Calc_kMinkMax_VesStruct") < 0)) __PYX_ERR(0, 2619, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ray_orig = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ray_orig.memview)) __PYX_ERR(0, 2619, __pyx_L3_error)
__pyx_v_ray_vdir = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ray_vdir.memview)) __PYX_ERR(0, 2620, __pyx_L3_error)
__pyx_v_ves_poly = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_poly.memview)) __PYX_ERR(0, 2621, __pyx_L3_error)
__pyx_v_ves_norm = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_norm.memview)) __PYX_ERR(0, 2622, __pyx_L3_error)
__pyx_v_num_surf = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_num_surf == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2623, __pyx_L3_error)
if (values[5]) {
__pyx_v_ves_lims = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_lims.memview)) __PYX_ERR(0, 2624, __pyx_L3_error)
} else {
__pyx_v_ves_lims = __pyx_k__73;
__PYX_INC_MEMVIEW(&__pyx_v_ves_lims, 1);
}
if (values[6]) {
__pyx_v_lnvert = __Pyx_PyObject_to_MemoryviewSlice_dc_long(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_lnvert.memview)) __PYX_ERR(0, 2625, __pyx_L3_error)
} else {
__pyx_v_lnvert = __pyx_k__74;
__PYX_INC_MEMVIEW(&__pyx_v_lnvert, 1);
}
if (values[7]) {
__pyx_v_rmin = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_rmin == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2626, __pyx_L3_error)
} else {
__pyx_v_rmin = ((double)-1.0);
}
if (values[8]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2627, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__75;
}
if (values[9]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2627, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__76;
}
if (values[10]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2628, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__77;
}
if (values[11]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2628, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__78;
}
if (values[12]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2629, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__79;
}
__pyx_v_ves_type = ((PyObject*)values[13]);
if (values[14]) {
__pyx_v_forbid = __Pyx_PyObject_IsTrue(values[14]); if (unlikely((__pyx_v_forbid == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2630, __pyx_L3_error)
} else {
__pyx_v_forbid = ((int)1);
}
if (values[15]) {
__pyx_v_test = __Pyx_PyObject_IsTrue(values[15]); if (unlikely((__pyx_v_test == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2630, __pyx_L3_error)
} else {
__pyx_v_test = ((int)1);
}
if (values[16]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[16]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 2630, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_Calc_kMinkMax_VesStruct", 0, 5, 17, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2619, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_Calc_kMinkMax_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 2629, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_46LOS_Calc_kMinkMax_VesStruct(__pyx_self, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_ves_norm, __pyx_v_num_surf, __pyx_v_ves_lims, __pyx_v_lnvert, __pyx_v_rmin, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_forbid, __pyx_v_test, __pyx_v_num_threads);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_46LOS_Calc_kMinkMax_VesStruct(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_ray_orig, __Pyx_memviewslice __pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, __Pyx_memviewslice __pyx_v_ves_norm, int __pyx_v_num_surf, __Pyx_memviewslice __pyx_v_ves_lims, __Pyx_memviewslice __pyx_v_lnvert, double __pyx_v_rmin, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, int __pyx_v_forbid, int __pyx_v_test, int __pyx_v_num_threads) {
int __pyx_v_npts_poly;
int __pyx_v_num_los;
CYTHON_UNUSED int __pyx_v_ind_struct;
int __pyx_v_ind_surf;
double __pyx_v_Crit2_base;
CYTHON_UNUSED double __pyx_v_lim_min;
CYTHON_UNUSED double __pyx_v_lim_max;
double __pyx_v_rmin2;
PyObject *__pyx_v_error_message = 0;
int __pyx_v_forbidbis;
int __pyx_v_forbid0;
arrayobject *__pyx_v_coeff_inter_in = 0;
arrayobject *__pyx_v_coeff_inter_out = 0;
CYTHON_UNUSED int *__pyx_v_llimits;
CYTHON_UNUSED long *__pyx_v_lsz_lim;
int __pyx_v_are_limited;
double __pyx_v_lbounds_ves[2];
PyObject *__pyx_v_ee = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_Calc_kMinkMax_VesStruct", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__Pyx_XDECREF(__pyx_t_20);
__Pyx_AddTraceback("tofu.geom._GG03.LOS_Calc_kMinkMax_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_error_message);
__Pyx_XDECREF((PyObject *)__pyx_v_coeff_inter_in);
__Pyx_XDECREF((PyObject *)__pyx_v_coeff_inter_out);
__Pyx_XDECREF(__pyx_v_ee);
__PYX_XDEC_MEMVIEW(&__pyx_v_ray_orig, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ray_vdir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_poly, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_norm, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_lims, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_lnvert, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__204 = PyTuple_Pack(40, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_ves_norm, __pyx_n_s_num_surf, __pyx_n_s_ves_lims, __pyx_n_s_lnvert, __pyx_n_s_rmin, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_forbid, __pyx_n_s_test, __pyx_n_s_num_threads, __pyx_n_s_npts_poly, __pyx_n_s_num_los, __pyx_n_s_ind_struct, __pyx_n_s_ind_surf, __pyx_n_s_len_lim, __pyx_n_s_ind_min, __pyx_n_s_Crit2_base, __pyx_n_s_lim_min, __pyx_n_s_lim_max, __pyx_n_s_rmin2, __pyx_n_s_error_message, __pyx_n_s_forbidbis, __pyx_n_s_forbid0, __pyx_n_s_bool1, __pyx_n_s_bool2, __pyx_n_s_coeff_inter_in, __pyx_n_s_coeff_inter_out, __pyx_n_s_llimits, __pyx_n_s_lsz_lim, __pyx_n_s_are_limited, __pyx_n_s_lbounds_ves, __pyx_n_s_lim_ves, __pyx_n_s_ee); if (unlikely(!__pyx_tuple__204)) __PYX_ERR(0, 2619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__204);
__Pyx_GIVEREF(__pyx_tuple__204);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_47LOS_Calc_kMinkMax_VesStruct, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2619, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_Calc_kMinkMax_VesStruct, __pyx_t_1) < 0) __PYX_ERR(0, 2619, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__205 = (PyObject*)__Pyx_PyCode_New(17, 0, 40, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__204, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_Calc_kMinkMax_VesStruct, 2619, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__205)) __PYX_ERR(0, 2619, __pyx_L1_error)
2620: double[:, ::1] ray_vdir,
2621: double[:, :, ::1] ves_poly,
2622: double[:, :, ::1] ves_norm,
2623: int num_surf,
+2624: double[::1] ves_lims=None,
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 2624, __pyx_L1_error) __pyx_k__73 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
+2625: long[::1] lnvert=None,
__pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dc_long(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 2625, __pyx_L1_error) __pyx_k__74 = __pyx_t_4; __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
2626: double rmin=-1,
+2627: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__75 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__76 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+2628: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__77 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__78 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+2629: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__79 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
2630: bint forbid=1, bint test=1, int num_threads=16):
2631: """
2632: Computes the entry and exit point of all provided LOS for the provided
2633: polygons (toroidal or linear) of IN structures (non-solid, or `empty`
2634: inside for the LOS).
2635: Attention: the surfaces can be limited, but they all have to have the
2636: same limits defined by (ves_lims)
2637: Return the set of kmin / kmax for each In struct and for each LOS
2638:
2639: Params
2640: ======
2641: ray_orig : (3, num_los) double array
2642: LOS origin points coordinates
2643: ray_vdir : (3, num_los) double array
2644: LOS normalized direction vector
2645: num_surf : int
2646: number of surfaxes, aka 'in' structures or 'vessels'
2647: ves_poly : (num_surf, 2, num_vertex) double array
2648: Coordinates of the vertices of the Polygon defining the 2D poloidal
2649: cut of the `in` structures
2650: ves_norm : (num_surf, 2, num_vertex-1) double array
2651: Normal vectors going "inwards" of the edges of the Polygon defined
2652: by ves_poly
2653: ves_lims : array
2654: Contains the limits min and max of vessel
2655: rmin : double
2656: Minimal radius of vessel to take into consideration
2657: eps<val> : double
2658: Small value, acceptance of error
2659: vtype : string
2660: Type of vessel ("Tor" or "Lin")
2661: forbid : bool
2662: Should we forbid values behind vissible radius ? (see rmin)
2663: test : bool
2664: Should we run tests ?
2665: num_threads : int
2666: The num_threads argument indicates how many threads the team should
2667: consist of. If not given, OpenMP will decide how many threads to use.
2668: Typically this is the number of cores available on the machine.
2669: Return
2670: ======
2671: coeff_inter_in : (num_surf, num_los) array
2672: scalars level of "in" intersection of the LOS (if k=0 at origin) for
2673: each surface
2674: [kmin(surf0, los0), kmin(surf0, los1), ..., kmin(surf1, los0),....]
2675: coeff_inter_out : (num_surf, num_los) array
2676: scalars level of "out" intersection of the LOS (if k=0 at origin) for
2677: each surface
2678: [kmax(surf0, los0), kmax(surf0, los1), ..., kmax(surf1, los0),....]
2679: """
2680: cdef int npts_poly
+2681: cdef int num_los = ray_orig.shape[1]
__pyx_v_num_los = (__pyx_v_ray_orig.shape[1]);
+2682: cdef int ind_struct = 0
__pyx_v_ind_struct = 0;
2683: cdef int ind_surf
2684: cdef int len_lim
2685: cdef int ind_min
+2686: cdef double Crit2_base = eps_uz * eps_uz /400.
__pyx_v_Crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
+2687: cdef double lim_min = 0.
__pyx_v_lim_min = 0.;
+2688: cdef double lim_max = 0.
__pyx_v_lim_max = 0.;
+2689: cdef double rmin2 = 0.
__pyx_v_rmin2 = 0.;
2690: cdef str error_message
2691: cdef bint forbidbis, forbid0
2692: cdef bint bool1, bool2
+2693: cdef array coeff_inter_in = clone(array('d'), num_los * num_surf, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), (__pyx_v_num_los * __pyx_v_num_surf), 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_coeff_inter_in = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
+2694: cdef array coeff_inter_out = clone(array('d'), num_los * num_surf, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), (__pyx_v_num_los * __pyx_v_num_surf), 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_coeff_inter_out = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
+2695: cdef int *llimits = NULL
__pyx_v_llimits = NULL;
+2696: cdef long *lsz_lim = NULL
__pyx_v_lsz_lim = NULL;
2697: cdef bint are_limited
2698: cdef double[2] lbounds_ves
2699: cdef double[2] lim_ves
2700:
2701: # == Testing inputs ========================================================
+2702: if test:
__pyx_t_3 = (__pyx_v_test != 0);
if (__pyx_t_3) {
/* … */
}
2703: error_message = "ray_orig and ray_vdir must have the same shape: "\
+2704: + "(3,) or (3,NL)!"
__pyx_t_1 = PyNumber_Add(__pyx_kp_s_ray_orig_and_ray_vdir_must_have, __pyx_kp_s_3_or_3_NL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_error_message = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+2705: assert tuple(ray_orig.shape) == tuple(ray_vdir.shape) and \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_carray_to_py_Py_ssize_t(__pyx_v_ray_orig.shape, 8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_carray_to_py_Py_ssize_t(__pyx_v_ray_vdir.shape, 8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2705, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L4_bool_binop_done;
}
+2706: ray_orig.shape[0] == 3, error_message
__pyx_t_5 = (((__pyx_v_ray_orig.shape[0]) == 3) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L4_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 2705, __pyx_L1_error)
}
}
#endif
+2707: error_message = "[eps_uz,eps_vz,eps_a,eps_b] must be floats < 1.e-4!"
__Pyx_INCREF(__pyx_kp_s_eps_uz_eps_vz_eps_a_eps_b_must); __Pyx_DECREF_SET(__pyx_v_error_message, __pyx_kp_s_eps_uz_eps_vz_eps_a_eps_b_must);
+2708: assert all([ee < 1.e-4 for ee in [eps_uz, eps_a,
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_eps_uz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_eps_a); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__pyx_t_9 = PyTuple_New(5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_t_8);
__pyx_t_4 = 0;
__pyx_t_2 = 0;
__pyx_t_6 = 0;
__pyx_t_7 = 0;
__pyx_t_8 = 0;
__pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
for (;;) {
if (__pyx_t_10 >= 5) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2708, __pyx_L1_error)
#else
__pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
#endif
__Pyx_XDECREF_SET(__pyx_v_ee, __pyx_t_9);
__pyx_t_9 = 0;
__pyx_t_9 = PyObject_RichCompare(__pyx_v_ee, __pyx_float_1_eneg_4, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2708, __pyx_L1_error)
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2708, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_3)) {
+2709: eps_vz, eps_b,
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_eps_vz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_eps_b); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7);
+2710: eps_plane]]), error_message
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_eps_plane); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); /* … */ PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message); __PYX_ERR(0, 2708, __pyx_L1_error) } } #endif
+2711: error_message = "ves_type must be a str in ['Tor','Lin']!"
__Pyx_INCREF(__pyx_kp_s_ves_type_must_be_a_str_in_Tor_Li); __Pyx_DECREF_SET(__pyx_v_error_message, __pyx_kp_s_ves_type_must_be_a_str_in_Tor_Li);
+2712: assert ves_type.lower() in ['tor', 'lin'], error_message
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_8 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2712, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2712, __pyx_L1_error)
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_n_s_lin, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2712, __pyx_L1_error)
__pyx_t_3 = __pyx_t_5;
__pyx_L8_bool_binop_done:;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_v_error_message);
__PYX_ERR(0, 2712, __pyx_L1_error)
}
}
#endif
2713:
2714: # ==========================================================================
+2715: if ves_type.lower() == 'tor':
__pyx_t_8 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_8, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2715, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L10; }
2716: # .. if there are, we get the limits for the vessel ....................
+2717: if ves_lims is None or np.size(ves_lims) == 0:
__pyx_t_5 = ((((PyObject *) __pyx_v_ves_lims.memview) == Py_None) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L12_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_ves_lims, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_7 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
__pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
if (likely(__pyx_t_7)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
__Pyx_INCREF(__pyx_t_7);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_9, function);
}
}
__pyx_t_8 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_7, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_1);
__Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2717, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L12_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L11;
}
+2718: are_limited = False
__pyx_v_are_limited = 0;
+2719: lbounds_ves[0] = 0
(__pyx_v_lbounds_ves[0]) = 0.0;
+2720: lbounds_ves[1] = 0
(__pyx_v_lbounds_ves[1]) = 0.0;
2721: else:
+2722: are_limited = True
/*else*/ {
__pyx_v_are_limited = 1;
+2723: lbounds_ves[0] = Catan2(Csin(ves_lims[0]), Ccos(ves_lims[0]))
__pyx_t_11 = 0;
__pyx_t_12 = 0;
(__pyx_v_lbounds_ves[0]) = atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_11)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_12)) )))));
+2724: lbounds_ves[1] = Catan2(Csin(ves_lims[1]), Ccos(ves_lims[1]))
__pyx_t_13 = 1;
__pyx_t_14 = 1;
(__pyx_v_lbounds_ves[1]) = atan2(sin((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_13)) )))), cos((*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_14)) )))));
}
__pyx_L11:;
2725: # -- Toroidal case -----------------------------------------------------
+2726: for ind_surf in range(num_surf):
__pyx_t_15 = __pyx_v_num_surf;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_ind_surf = __pyx_t_17;
2727: # rmin is necessary to avoid looking on the other side of the tok
+2728: if rmin < 0.:
__pyx_t_3 = ((__pyx_v_rmin < 0.) != 0);
if (__pyx_t_3) {
/* … */
}
+2729: rmin = 0.95*min(np.min(ves_poly[ind_surf, 0, ...]),
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_min); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_18.data = __pyx_v_ves_poly.data; __pyx_t_18.memview = __pyx_v_ves_poly.memview; __PYX_INC_MEMVIEW(&__pyx_t_18, 0); { Py_ssize_t __pyx_tmp_idx = __pyx_v_ind_surf; Py_ssize_t __pyx_tmp_stride = __pyx_v_ves_poly.strides[0]; if ((0)) __PYX_ERR(0, 2729, __pyx_L1_error) __pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride; } { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_ves_poly.strides[1]; if ((0)) __PYX_ERR(0, 2729, __pyx_L1_error) __pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_18.shape[0] = __pyx_v_ves_poly.shape[2]; __pyx_t_18.strides[0] = __pyx_v_ves_poly.strides[2]; __pyx_t_18.suboffsets[0] = -1; __pyx_t_8 = __pyx_memoryview_fromslice(__pyx_t_18, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1); __pyx_t_18.memview = NULL; __pyx_t_18.data = NULL; __pyx_t_20 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_20)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_20); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_20, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_8); __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_9 = PyNumber_Multiply(__pyx_float_0_95, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2729, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_v_rmin = __pyx_t_21;
+2730: np.min(np.hypot(ray_orig[0, ...],
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_hypot); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_18.data = __pyx_v_ray_orig.data; __pyx_t_18.memview = __pyx_v_ray_orig.memview; __PYX_INC_MEMVIEW(&__pyx_t_18, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_ray_orig.strides[0]; if ((0)) __PYX_ERR(0, 2730, __pyx_L1_error) __pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_18.shape[0] = __pyx_v_ray_orig.shape[1]; __pyx_t_18.strides[0] = __pyx_v_ray_orig.strides[1]; __pyx_t_18.suboffsets[0] = -1; __pyx_t_7 = __pyx_memoryview_fromslice(__pyx_t_18, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2730, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1); __pyx_t_18.memview = NULL; __pyx_t_18.data = NULL; /* … */ __pyx_t_8 = PyObject_RichCompare(__pyx_t_9, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2730, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2730, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_3) { __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = __pyx_t_9; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2731: ray_orig[1, ...])))
__pyx_t_18.data = __pyx_v_ray_orig.data;
__pyx_t_18.memview = __pyx_v_ray_orig.memview;
__PYX_INC_MEMVIEW(&__pyx_t_18, 0);
{
Py_ssize_t __pyx_tmp_idx = 1;
Py_ssize_t __pyx_tmp_stride = __pyx_v_ray_orig.strides[0];
if ((0)) __PYX_ERR(0, 2731, __pyx_L1_error)
__pyx_t_18.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_18.shape[0] = __pyx_v_ray_orig.shape[1];
__pyx_t_18.strides[0] = __pyx_v_ray_orig.strides[1];
__pyx_t_18.suboffsets[0] = -1;
__pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_18, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2731, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__pyx_t_18.memview = NULL;
__pyx_t_18.data = NULL;
__pyx_t_4 = NULL;
__pyx_t_19 = 0;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
__pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
if (likely(__pyx_t_4)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_6, function);
__pyx_t_19 = 1;
}
}
#if CYTHON_FAST_PYCALL
if (PyFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_7, __pyx_t_2};
__pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_19, 2+__pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else
#endif
#if CYTHON_FAST_PYCCALL
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_7, __pyx_t_2};
__pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_19, 2+__pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
} else
#endif
{
__pyx_t_20 = PyTuple_New(2+__pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_20);
if (__pyx_t_4) {
__Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_4); __pyx_t_4 = NULL;
}
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_19, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_19, __pyx_t_2);
__pyx_t_7 = 0;
__pyx_t_2 = 0;
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_20, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
}
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_8);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2730, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2732: rmin2 = rmin*rmin
__pyx_v_rmin2 = (__pyx_v_rmin * __pyx_v_rmin);
2733: # Variable to avoid looking "behind" blind spot of tore
+2734: if forbid:
__pyx_t_3 = (__pyx_v_forbid != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L17;
}
+2735: forbid0, forbidbis = 1, 1
__pyx_t_3 = 1;
__pyx_t_5 = 1;
__pyx_v_forbid0 = __pyx_t_3;
__pyx_v_forbidbis = __pyx_t_5;
2736: else:
+2737: forbid0, forbidbis = 0, 0
/*else*/ {
__pyx_t_5 = 0;
__pyx_t_3 = 0;
__pyx_v_forbid0 = __pyx_t_5;
__pyx_v_forbidbis = __pyx_t_3;
}
__pyx_L17:;
2738: # Getting size of poly
+2739: npts_poly = lnvert[ind_surf]
__pyx_t_22 = __pyx_v_ind_surf;
__pyx_v_npts_poly = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_22)) )));
2740: # -- Computing intersection between LOS and Vessel -----------------
+2741: raytracing_minmax_struct_tor(num_los, ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_raytracing_minmax_struct_tor(__pyx_v_num_los, __pyx_v_ray_vdir, __pyx_v_ray_orig, (&(__pyx_v_coeff_inter_out->data.as_doubles[(__pyx_v_ind_surf * __pyx_v_num_los)])), (&(__pyx_v_coeff_inter_in->data.as_doubles[(__pyx_v_ind_surf * __pyx_v_num_los)])), __pyx_v_forbid0, __pyx_v_forbidbis, __pyx_v_rmin, __pyx_v_rmin2, __pyx_v_Crit2_base, __pyx_v_npts_poly, __pyx_v_lbounds_ves, __pyx_v_are_limited, (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_23 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_24 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_25)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_26 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_27 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_28)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_29 * __pyx_v_ves_norm.strides[0]) ) + __pyx_t_30 * __pyx_v_ves_norm.strides[1]) )) + __pyx_t_31)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_32 * __pyx_v_ves_norm.strides[0]) ) + __pyx_t_33 * __pyx_v_ves_norm.strides[1]) )) + __pyx_t_34)) )))), __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_num_threads);
}
2742: &coeff_inter_out.data.as_doubles[ind_surf*num_los],
2743: &coeff_inter_in.data.as_doubles[ind_surf*num_los],
2744: forbid0, forbidbis,
2745: rmin, rmin2, Crit2_base,
2746: npts_poly, lbounds_ves,
2747: are_limited,
+2748: &ves_poly[ind_surf][0][0],
__pyx_t_23 = __pyx_v_ind_surf;
__pyx_t_24 = 0;
__pyx_t_25 = 0;
+2749: &ves_poly[ind_surf][1][0],
__pyx_t_26 = __pyx_v_ind_surf;
__pyx_t_27 = 1;
__pyx_t_28 = 0;
+2750: &ves_norm[ind_surf][0][0],
__pyx_t_29 = __pyx_v_ind_surf;
__pyx_t_30 = 0;
__pyx_t_31 = 0;
+2751: &ves_norm[ind_surf][1][0],
__pyx_t_32 = __pyx_v_ind_surf;
__pyx_t_33 = 1;
__pyx_t_34 = 0;
2752: eps_uz, eps_vz, eps_a,
2753: eps_b, eps_plane,
2754: num_threads)
2755: else:
2756: # .. if there are, we get the limits for the vessel ....................
+2757: if ves_lims is None or np.size(ves_lims) == 0:
/*else*/ {
__pyx_t_5 = ((((PyObject *) __pyx_v_ves_lims.memview) == Py_None) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L19_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_ves_lims, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = NULL;
if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
__pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
if (likely(__pyx_t_8)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
__Pyx_INCREF(__pyx_t_8);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_1, function);
}
}
__pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6);
__Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2757, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L19_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L18;
}
+2758: are_limited = False
__pyx_v_are_limited = 0;
+2759: lbounds_ves[0] = 0
(__pyx_v_lbounds_ves[0]) = 0.0;
+2760: lbounds_ves[1] = 0
(__pyx_v_lbounds_ves[1]) = 0.0;
2761: else:
+2762: are_limited = True
/*else*/ {
__pyx_v_are_limited = 1;
+2763: lbounds_ves[0] = ves_lims[0]
__pyx_t_35 = 0;
(__pyx_v_lbounds_ves[0]) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_35)) )));
+2764: lbounds_ves[1] = ves_lims[1]
__pyx_t_36 = 1;
(__pyx_v_lbounds_ves[1]) = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_ves_lims.data) + __pyx_t_36)) )));
}
__pyx_L18:;
2765:
2766: # -- Cylindrical case --------------------------------------------------
+2767: for ind_surf in range(num_surf):
__pyx_t_15 = __pyx_v_num_surf;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_ind_surf = __pyx_t_17;
2768: # Getting size of poly
+2769: npts_poly = lnvert[ind_surf]
__pyx_t_37 = __pyx_v_ind_surf;
__pyx_v_npts_poly = (*((long *) ( /* dim=0 */ ((char *) (((long *) __pyx_v_lnvert.data) + __pyx_t_37)) )));
+2770: raytracing_minmax_struct_lin(num_los, ray_orig, ray_vdir, npts_poly,
__pyx_f_4tofu_4geom_5_GG03_raytracing_minmax_struct_lin(__pyx_v_num_los, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_npts_poly, (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_38 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_39 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_40)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_41 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_42 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_43)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_44 * __pyx_v_ves_norm.strides[0]) ) + __pyx_t_45 * __pyx_v_ves_norm.strides[1]) )) + __pyx_t_46)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_norm.data + __pyx_t_47 * __pyx_v_ves_norm.strides[0]) ) + __pyx_t_48 * __pyx_v_ves_norm.strides[1]) )) + __pyx_t_49)) )))), (__pyx_v_lbounds_ves[0]), (__pyx_v_lbounds_ves[1]), (&(__pyx_v_coeff_inter_out->data.as_doubles[(__pyx_v_ind_surf * __pyx_v_num_los)])), (&(__pyx_v_coeff_inter_in->data.as_doubles[(__pyx_v_ind_surf * __pyx_v_num_los)])), __pyx_v_eps_plane);
}
}
__pyx_L10:;
+2771: &ves_poly[ind_surf][0][0],
__pyx_t_38 = __pyx_v_ind_surf;
__pyx_t_39 = 0;
__pyx_t_40 = 0;
+2772: &ves_poly[ind_surf][1][0],
__pyx_t_41 = __pyx_v_ind_surf;
__pyx_t_42 = 1;
__pyx_t_43 = 0;
+2773: &ves_norm[ind_surf][0][0],
__pyx_t_44 = __pyx_v_ind_surf;
__pyx_t_45 = 0;
__pyx_t_46 = 0;
+2774: &ves_norm[ind_surf][1][0],
__pyx_t_47 = __pyx_v_ind_surf;
__pyx_t_48 = 1;
__pyx_t_49 = 0;
2775: lbounds_ves[0], lbounds_ves[1],
2776: &coeff_inter_out.data.as_doubles[ind_surf*num_los],
2777: &coeff_inter_in.data.as_doubles[ind_surf*num_los],
2778: eps_plane)
2779:
+2780: return np.asarray(coeff_inter_in), np.asarray(coeff_inter_out)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_9, ((PyObject *)__pyx_v_coeff_inter_in)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_coeff_inter_in)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_asarray); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_6 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, ((PyObject *)__pyx_v_coeff_inter_out)) : __Pyx_PyObject_CallOneArg(__pyx_t_8, ((PyObject *)__pyx_v_coeff_inter_out)); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); __pyx_t_1 = 0; __pyx_t_6 = 0; __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0;
2781:
2782:
2783:
+2784: cdef inline void raytracing_minmax_struct_tor(int num_los,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_raytracing_minmax_struct_tor(CYTHON_UNUSED int __pyx_v_num_los, __Pyx_memviewslice __pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ray_orig, double *__pyx_v_coeff_inter_out, double *__pyx_v_coeff_inter_in, int __pyx_v_forbid0, int __pyx_v_forbidbis, double __pyx_v_rmin, double __pyx_v_rmin2, double __pyx_v_crit2_base, int __pyx_v_npts_poly, double *__pyx_v_langles, int __pyx_v_is_limited, double *__pyx_v_surf_polyx, double *__pyx_v_surf_polyy, double *__pyx_v_surf_normx, double *__pyx_v_surf_normy, double __pyx_v_eps_uz, double __pyx_v_eps_vz, double __pyx_v_eps_a, double __pyx_v_eps_b, double __pyx_v_eps_plane, int __pyx_v_num_threads) {
double __pyx_v_upscaDp;
double __pyx_v_upar2;
double __pyx_v_dpar2;
double __pyx_v_crit2;
double __pyx_v_idpar2;
double __pyx_v_dist;
double __pyx_v_s1x;
double __pyx_v_s1y;
double __pyx_v_s2x;
double __pyx_v_s2y;
CYTHON_UNUSED double __pyx_v_lim_min;
CYTHON_UNUSED double __pyx_v_lim_max;
double __pyx_v_invuz;
CYTHON_UNUSED int __pyx_v_totnvert;
CYTHON_UNUSED int __pyx_v_ind_struct;
int __pyx_v_ind_los;
int __pyx_v_found_new_kout;
double __pyx_v_dummy[3];
int __pyx_v_silly[1];
double *__pyx_v_kpout_loc;
double *__pyx_v_kpin_loc;
double *__pyx_v_loc_org;
double *__pyx_v_loc_dir;
/* … */
/* function exit code */
__pyx_L0:;
}
2785: double[:,::1] ray_vdir,
2786: double[:,::1] ray_orig,
2787: double* coeff_inter_out,
2788: double* coeff_inter_in,
2789: bint forbid0, bint forbidbis,
2790: double rmin, double rmin2,
2791: double crit2_base,
2792: int npts_poly,
2793: double* langles,
2794: bint is_limited,
2795: double* surf_polyx,
2796: double* surf_polyy,
2797: double* surf_normx,
2798: double* surf_normy,
2799: double eps_uz, double eps_vz,
2800: double eps_a, double eps_b,
2801: double eps_plane,
2802: int num_threads) nogil:
2803: """
2804: Computes the entry and exit point of all provided LOS/rays for a set of
2805: "IN" structures in a TORE. A "in" structure is typically a vessel, or
2806: flux surface and are (noramally) toroidally continous but you can specify
2807: if it is otherwise with lis_limited and langles.
2808: This functions is parallelized.
2809:
2810: Params
2811: ======
2812: num_los : int
2813: Total number of lines of sight (LOS) (aka. rays)
2814: ray_vdir : (3, num_los) double array
2815: LOS normalized direction vector
2816: ray_orig : (3, num_los) double array
2817: LOS origin points coordinates
2818: coeff_inter_out : (num_los) double array <INOUT>
2819: Coefficient of exit (kout) of the last point of intersection for each LOS
2820: with the global geometry (with ALL structures)
2821: coeff_inter_in : (num_los) double array <INOUT>
2822: Coefficient of entry (kin) of the last point of intersection for each LOS
2823: with the global geometry (with ALL structures). If intersection at origin
2824: k = 0, if no intersection k = NAN
2825: forbid0 : bool
2826: Should we forbid values behind vissible radius ? (see Rmin). If false,
2827: will test "hidden" part always, else, it will depend on the LOS and
2828: on forbidbis.
2829: forbidbis: bint
2830: Should we forbid values behind vissible radius for each LOS ?
2831: rmin : double
2832: Minimal radius of vessel to take into consideration
2833: rmin2 : double
2834: Squared valued of the minimal radius
2835: crit2_base : double
2836: Critical value to evaluate for each LOS if horizontal or not
2837: npts_poly : int
2838: Number of OUT structures (not counting the limited versions).
2839: If not is_out_struct then lenght of vpoly.
2840: langles : (2 * nstruct) double array
2841: Minimum and maximum angles where the structure lives. If the structure
2842: number 'i' is toroidally continous then langles[i:i+2] = [0, 0].
2843: is_limited : bint
2844: bool to know if the flux surface is limited or not
2845: surf_polyx : (ntotnvert)
2846: List of "x" coordinates of the polygon's vertices on
2847: the poloidal plane
2848: surf_polyy : (ntotnvert)
2849: List of "y" coordinates of the polygon's vertices on
2850: the poloidal plane
2851: surf_normx : (2, num_vertex-1) double array
2852: List of "x" coordinates of the normal vectors going "inwards" of the
2853: edges of the Polygon defined by surf_poly
2854: surf_normy : (2, num_vertex-1) double array
2855: List of "y" coordinates of the normal vectors going "inwards" of the
2856: edges of the Polygon defined by surf_poly
2857: eps<val> : double
2858: Small value, acceptance of error
2859: num_threads : int
2860: The num_threads argument indicates how many threads the team should
2861: consist of. If not given, OpenMP will decide how many threads to use.
2862: Typically this is the number of cores available on the machine.
2863: """
+2864: cdef double upscaDp=0., upar2=0., dpar2=0., crit2=0., idpar2=0.
__pyx_v_upscaDp = 0.; __pyx_v_upar2 = 0.; __pyx_v_dpar2 = 0.; __pyx_v_crit2 = 0.; __pyx_v_idpar2 = 0.;
+2865: cdef double dist = 0., s1x = 0., s1y = 0., s2x = 0., s2y = 0.
__pyx_v_dist = 0.; __pyx_v_s1x = 0.; __pyx_v_s1y = 0.; __pyx_v_s2x = 0.; __pyx_v_s2y = 0.;
+2866: cdef double lim_min=0., lim_max=0., invuz=0.
__pyx_v_lim_min = 0.; __pyx_v_lim_max = 0.; __pyx_v_invuz = 0.;
+2867: cdef int totnvert=0
__pyx_v_totnvert = 0;
2868: cdef int nvert
2869: cdef int ind_struct, ind_bounds
2870: cdef int ind_los, ii, jj, kk
2871: cdef bint lim_is_none
2872: cdef bint found_new_kout
2873: cdef bint inter_bbox
2874: cdef double[3] dummy
2875: cdef int[1] silly
+2876: cdef double* kpout_loc = NULL
__pyx_v_kpout_loc = NULL;
+2877: cdef double* kpin_loc = NULL
__pyx_v_kpin_loc = NULL;
+2878: cdef double* loc_org = NULL
__pyx_v_loc_org = NULL;
+2879: cdef double* loc_dir = NULL
__pyx_v_loc_dir = NULL;
2880:
2881: # == Defining parallel part ================================================
+2882: with nogil, parallel(num_threads=num_threads):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_loc_dir, __pyx_v_loc_org) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_loc_dir, __pyx_v_loc_org) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_kpin_loc = ((double *)1);
__pyx_v_kpout_loc = ((double *)1);
__pyx_v_loc_dir = ((double *)1);
__pyx_v_loc_org = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
2883: # We use local arrays for each thread so
+2884: loc_org = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_org = ((double *)malloc(((sizeof(double)) * 3)));
+2885: loc_dir = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_dir = ((double *)malloc(((sizeof(double)) * 3)));
+2886: kpin_loc = <double *> malloc(sizeof(double) * 1)
__pyx_v_kpin_loc = ((double *)malloc(((sizeof(double)) * 1)));
+2887: kpout_loc = <double *> malloc(sizeof(double) * 1)
__pyx_v_kpout_loc = ((double *)malloc(((sizeof(double)) * 1)));
2888: # == The parallelization over the LOS ==================================
+2889: for ind_los in prange(num_los, schedule='dynamic'):
__pyx_t_1 = __pyx_v_num_los;
if (1 == 0) abort();
{
__pyx_t_3 = (__pyx_t_1 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_3 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_crit2) lastprivate(__pyx_v_dist) lastprivate(__pyx_v_dpar2) lastprivate(__pyx_v_forbidbis) lastprivate(__pyx_v_found_new_kout) lastprivate(__pyx_v_idpar2) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_struct) lastprivate(__pyx_v_invuz) lastprivate(__pyx_v_s1x) lastprivate(__pyx_v_s1y) lastprivate(__pyx_v_s2x) lastprivate(__pyx_v_s2y) lastprivate(__pyx_v_upar2) lastprivate(__pyx_v_upscaDp) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_3; __pyx_t_2++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_2);
/* Initialize private variables to invalid values */
__pyx_v_crit2 = ((double)__PYX_NAN());
__pyx_v_dist = ((double)__PYX_NAN());
__pyx_v_dpar2 = ((double)__PYX_NAN());
__pyx_v_forbidbis = ((int)0xbad0bad0);
__pyx_v_found_new_kout = ((int)0xbad0bad0);
__pyx_v_idpar2 = ((double)__PYX_NAN());
__pyx_v_ind_struct = ((int)0xbad0bad0);
__pyx_v_invuz = ((double)__PYX_NAN());
__pyx_v_s1x = ((double)__PYX_NAN());
__pyx_v_s1y = ((double)__PYX_NAN());
__pyx_v_s2x = ((double)__PYX_NAN());
__pyx_v_s2y = ((double)__PYX_NAN());
__pyx_v_upar2 = ((double)__PYX_NAN());
__pyx_v_upscaDp = ((double)__PYX_NAN());
+2890: ind_struct = 0
__pyx_v_ind_struct = 0;
+2891: loc_org[0] = ray_orig[0, ind_los]
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_ind_los;
(__pyx_v_loc_org[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_4 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_5)) )));
+2892: loc_org[1] = ray_orig[1, ind_los]
__pyx_t_6 = 1;
__pyx_t_7 = __pyx_v_ind_los;
(__pyx_v_loc_org[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_6 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_7)) )));
+2893: loc_org[2] = ray_orig[2, ind_los]
__pyx_t_8 = 2;
__pyx_t_9 = __pyx_v_ind_los;
(__pyx_v_loc_org[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_8 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_9)) )));
+2894: loc_dir[0] = ray_vdir[0, ind_los]
__pyx_t_10 = 0;
__pyx_t_11 = __pyx_v_ind_los;
(__pyx_v_loc_dir[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_10 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_11)) )));
+2895: loc_dir[1] = ray_vdir[1, ind_los]
__pyx_t_12 = 1;
__pyx_t_13 = __pyx_v_ind_los;
(__pyx_v_loc_dir[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_12 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_13)) )));
+2896: loc_dir[2] = ray_vdir[2, ind_los]
__pyx_t_14 = 2;
__pyx_t_15 = __pyx_v_ind_los;
(__pyx_v_loc_dir[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_14 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_15)) )));
+2897: kpout_loc[0] = 0
(__pyx_v_kpout_loc[0]) = 0.0;
+2898: kpin_loc[0] = 0
(__pyx_v_kpin_loc[0]) = 0.0;
2899: # -- Computing values that depend on the LOS/ray -------------------
+2900: upscaDp = loc_dir[0]*loc_org[0] + loc_dir[1]*loc_org[1]
__pyx_v_upscaDp = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_org[1])));
+2901: upar2 = loc_dir[0]*loc_dir[0] + loc_dir[1]*loc_dir[1]
__pyx_v_upar2 = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_dir[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_dir[1])));
+2902: dpar2 = loc_org[0]*loc_org[0] + loc_org[1]*loc_org[1]
__pyx_v_dpar2 = (((__pyx_v_loc_org[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_org[1]) * (__pyx_v_loc_org[1])));
+2903: idpar2 = 1./dpar2
__pyx_v_idpar2 = (1. / __pyx_v_dpar2);
+2904: invuz = 1./loc_dir[2]
__pyx_v_invuz = (1. / (__pyx_v_loc_dir[2]));
+2905: crit2 = upar2*crit2_base
__pyx_v_crit2 = (__pyx_v_upar2 * __pyx_v_crit2_base);
2906:
2907: # -- Prepare in case forbid is True --------------------------------
+2908: if forbid0 and not dpar2>0:
__pyx_t_17 = (__pyx_v_forbid0 != 0);
if (__pyx_t_17) {
} else {
__pyx_t_16 = __pyx_t_17;
goto __pyx_L15_bool_binop_done;
}
__pyx_t_17 = ((!((__pyx_v_dpar2 > 0.0) != 0)) != 0);
__pyx_t_16 = __pyx_t_17;
__pyx_L15_bool_binop_done:;
if (__pyx_t_16) {
/* … */
}
+2909: forbidbis = 0
__pyx_v_forbidbis = 0;
+2910: if forbidbis:
__pyx_t_16 = (__pyx_v_forbidbis != 0);
if (__pyx_t_16) {
/* … */
}
2911: # Compute coordinates of the 2 points where the tangents touch
2912: # the inner circle
+2913: dist = Csqrt(dpar2-rmin2)
__pyx_v_dist = sqrt((__pyx_v_dpar2 - __pyx_v_rmin2));
+2914: s1x = (rmin2 * loc_org[0] + rmin * loc_org[1] * dist) * idpar2
__pyx_v_s1x = (((__pyx_v_rmin2 * (__pyx_v_loc_org[0])) + ((__pyx_v_rmin * (__pyx_v_loc_org[1])) * __pyx_v_dist)) * __pyx_v_idpar2);
+2915: s1y = (rmin2 * loc_org[1] - rmin * loc_org[0] * dist) * idpar2
__pyx_v_s1y = (((__pyx_v_rmin2 * (__pyx_v_loc_org[1])) - ((__pyx_v_rmin * (__pyx_v_loc_org[0])) * __pyx_v_dist)) * __pyx_v_idpar2);
+2916: s2x = (rmin2 * loc_org[0] - rmin * loc_org[1] * dist) * idpar2
__pyx_v_s2x = (((__pyx_v_rmin2 * (__pyx_v_loc_org[0])) - ((__pyx_v_rmin * (__pyx_v_loc_org[1])) * __pyx_v_dist)) * __pyx_v_idpar2);
+2917: s2y = (rmin2 * loc_org[1] + rmin * loc_org[0] * dist) * idpar2
__pyx_v_s2y = (((__pyx_v_rmin2 * (__pyx_v_loc_org[1])) + ((__pyx_v_rmin * (__pyx_v_loc_org[0])) * __pyx_v_dist)) * __pyx_v_idpar2);
2918:
2919: # == Case "IN" structure =======================================
2920: # Nothing to do but compute intersection between vessel and LOS
+2921: found_new_kout = comp_inter_los_vpoly(loc_org, loc_dir,
__pyx_v_found_new_kout = __pyx_f_4tofu_4geom_5_GG03_comp_inter_los_vpoly(__pyx_v_loc_org, __pyx_v_loc_dir, __pyx_v_surf_polyx, __pyx_v_surf_polyy, __pyx_v_surf_normx, __pyx_v_surf_normy, __pyx_v_npts_poly, __pyx_v_is_limited, (__pyx_v_langles[0]), (__pyx_v_langles[1]), __pyx_v_forbidbis, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_s1x, __pyx_v_s1y, __pyx_v_s2x, __pyx_v_s2y, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_eps_plane, 1, __pyx_v_kpin_loc, __pyx_v_kpout_loc, __pyx_v_silly, __pyx_v_dummy, NULL);
2922: surf_polyx,
2923: surf_polyy,
2924: surf_normx,
2925: surf_normy,
2926: npts_poly,
2927: is_limited,
2928: langles[0], langles[1],
2929: forbidbis,
2930: upscaDp, upar2,
2931: dpar2, invuz,
2932: s1x, s1y, s2x, s2y,
2933: crit2, eps_uz, eps_vz,
2934: eps_a,eps_b, eps_plane,
2935: True,
2936: kpin_loc, kpout_loc,
2937: silly, dummy)
+2938: if found_new_kout:
__pyx_t_16 = (__pyx_v_found_new_kout != 0);
if (__pyx_t_16) {
/* … */
goto __pyx_L18;
}
+2939: coeff_inter_in[ind_los] = kpin_loc[0]
(__pyx_v_coeff_inter_in[__pyx_v_ind_los]) = (__pyx_v_kpin_loc[0]);
+2940: coeff_inter_out[ind_los] = kpout_loc[0]
(__pyx_v_coeff_inter_out[__pyx_v_ind_los]) = (__pyx_v_kpout_loc[0]);
2941: else:
+2942: coeff_inter_in[ind_los] = Cnan
/*else*/ {
(__pyx_v_coeff_inter_in[__pyx_v_ind_los]) = NAN;
+2943: coeff_inter_out[ind_los] = Cnan
(__pyx_v_coeff_inter_out[__pyx_v_ind_los]) = NAN;
}
__pyx_L18:;
}
}
}
}
+2944: free(loc_org)
free(__pyx_v_loc_org);
+2945: free(loc_dir)
free(__pyx_v_loc_dir);
+2946: free(kpin_loc)
free(__pyx_v_kpin_loc);
+2947: free(kpout_loc)
free(__pyx_v_kpout_loc);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+2948: return
goto __pyx_L0;
2949:
2950:
+2951: cdef inline void raytracing_minmax_struct_lin(int Nl,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_raytracing_minmax_struct_lin(int __pyx_v_Nl, __Pyx_memviewslice __pyx_v_Ds, __Pyx_memviewslice __pyx_v_us, int __pyx_v_Ns, double *__pyx_v_polyx_tab, double *__pyx_v_polyy_tab, double *__pyx_v_normx_tab, double *__pyx_v_normy_tab, double __pyx_v_L0, double __pyx_v_L1, double *__pyx_v_kin_tab, double *__pyx_v_kout_tab, double __pyx_v_EpsPlane) {
int __pyx_v_is_in_path;
int __pyx_v_ii;
int __pyx_v_jj;
double __pyx_v_kin;
double __pyx_v_kout;
double __pyx_v_scauVin;
double __pyx_v_q;
double __pyx_v_X;
double __pyx_v_sca;
CYTHON_UNUSED int __pyx_v_indin;
CYTHON_UNUSED int __pyx_v_indout;
int __pyx_v_Done;
PyObject *__pyx_v_k = NULL;
double __pyx_v_V1;
double __pyx_v_V2;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("raytracing_minmax_struct_lin", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_18);
__Pyx_XDECREF(__pyx_t_23);
__Pyx_XDECREF(__pyx_t_24);
__Pyx_XDECREF(__pyx_t_29);
__Pyx_WriteUnraisable("tofu.geom._GG03.raytracing_minmax_struct_lin", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_k);
__Pyx_RefNannyFinishContext();
}
2952: double[:,::1] Ds,
2953: double [:,::1] us,
2954: int Ns,
2955: double* polyx_tab,
2956: double* polyy_tab,
2957: double* normx_tab,
2958: double* normy_tab,
2959: double L0, double L1,
2960: double* kin_tab,
2961: double* kout_tab,
2962: double EpsPlane):
2963: cdef bint is_in_path
+2964: cdef int ii=0, jj=0
__pyx_v_ii = 0; __pyx_v_jj = 0;
2965: cdef double kin, kout, scauVin, q, X, sca
+2966: cdef int indin=0, indout=0, Done=0
__pyx_v_indin = 0; __pyx_v_indout = 0; __pyx_v_Done = 0;
2967:
+2968: kin_tab[ii] = Cnan
(__pyx_v_kin_tab[__pyx_v_ii]) = NAN;
+2969: kout_tab[ii] = Cnan
(__pyx_v_kout_tab[__pyx_v_ii]) = NAN;
2970:
+2971: for ii in range(0,Nl):
__pyx_t_1 = __pyx_v_Nl;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
+2972: kout, kin, Done = 1.e12, 1e12, 0
__pyx_t_4 = 1.e12;
__pyx_t_5 = 1e12;
__pyx_t_6 = 0;
__pyx_v_kout = __pyx_t_4;
__pyx_v_kin = __pyx_t_5;
__pyx_v_Done = __pyx_t_6;
2973: # For cylinder
+2974: for jj in range(0,Ns):
__pyx_t_6 = __pyx_v_Ns;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_jj = __pyx_t_8;
+2975: scauVin = us[1,ii] * normx_tab[jj] + us[2,ii] * normy_tab[jj]
__pyx_t_9 = 1;
__pyx_t_10 = __pyx_v_ii;
__pyx_t_11 = 2;
__pyx_t_12 = __pyx_v_ii;
__pyx_v_scauVin = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_9 * __pyx_v_us.strides[0]) )) + __pyx_t_10)) ))) * (__pyx_v_normx_tab[__pyx_v_jj])) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_11 * __pyx_v_us.strides[0]) )) + __pyx_t_12)) ))) * (__pyx_v_normy_tab[__pyx_v_jj])));
2976: # Only if plane not parallel to line
+2977: if Cabs(scauVin)>EpsPlane:
__pyx_t_13 = ((fabs(__pyx_v_scauVin) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_13) {
/* … */
}
}
+2978: k = -( (Ds[1,ii] - polyx_tab[jj]) * normx_tab[jj] +
__pyx_t_14 = 1;
__pyx_t_15 = __pyx_v_ii;
+2979: (Ds[2,ii] - polyy_tab[jj]) * normy_tab[jj]) \
__pyx_t_16 = 2;
__pyx_t_17 = __pyx_v_ii;
+2980: / scauVin
__pyx_t_18 = PyFloat_FromDouble(((-((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_14 * __pyx_v_Ds.strides[0]) )) + __pyx_t_15)) ))) - (__pyx_v_polyx_tab[__pyx_v_jj])) * (__pyx_v_normx_tab[__pyx_v_jj])) + (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_16 * __pyx_v_Ds.strides[0]) )) + __pyx_t_17)) ))) - (__pyx_v_polyy_tab[__pyx_v_jj])) * (__pyx_v_normy_tab[__pyx_v_jj])))) / __pyx_v_scauVin)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2980, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_18); __pyx_t_18 = 0;
2981: # Only if on good side of semi-line
+2982: if k>=0.:
__pyx_t_18 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2982, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2982, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_13) { /* … */ }
+2983: V1 = polyx_tab[jj+1]-polyx_tab[jj]
__pyx_v_V1 = ((__pyx_v_polyx_tab[(__pyx_v_jj + 1)]) - (__pyx_v_polyx_tab[__pyx_v_jj]));
+2984: V2 = polyy_tab[jj+1]-polyy_tab[jj]
__pyx_v_V2 = ((__pyx_v_polyy_tab[(__pyx_v_jj + 1)]) - (__pyx_v_polyy_tab[__pyx_v_jj]));
+2985: q = ( (Ds[1,ii] + k * us[1,ii] - polyx_tab[jj]) * V1
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_19 * __pyx_v_Ds.strides[0]) )) + __pyx_t_20)) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_21 = 1;
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_21 * __pyx_v_us.strides[0]) )) + __pyx_t_22)) )))); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_24 = PyNumber_Multiply(__pyx_v_k, __pyx_t_23); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_23 = PyNumber_Add(__pyx_t_18, __pyx_t_24); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__pyx_t_24 = PyFloat_FromDouble((__pyx_v_polyx_tab[__pyx_v_jj])); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_18 = PyNumber_Subtract(__pyx_t_23, __pyx_t_24); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__pyx_t_24 = PyFloat_FromDouble(__pyx_v_V1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_23 = PyNumber_Multiply(__pyx_t_18, __pyx_t_24); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+2986: + (Ds[2,ii] + k * us[2,ii] - polyy_tab[jj]) * V2) \
__pyx_t_25 = 2;
__pyx_t_26 = __pyx_v_ii;
__pyx_t_24 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_25 * __pyx_v_Ds.strides[0]) )) + __pyx_t_26)) )))); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__pyx_t_27 = 2;
__pyx_t_28 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_27 * __pyx_v_us.strides[0]) )) + __pyx_t_28)) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_29 = PyNumber_Multiply(__pyx_v_k, __pyx_t_18); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_Add(__pyx_t_24, __pyx_t_29); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_29 = PyFloat_FromDouble((__pyx_v_polyy_tab[__pyx_v_jj])); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_24 = PyNumber_Subtract(__pyx_t_18, __pyx_t_29); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_24);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_29 = PyFloat_FromDouble(__pyx_v_V2); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_18 = PyNumber_Multiply(__pyx_t_24, __pyx_t_29); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_29 = PyNumber_Add(__pyx_t_23, __pyx_t_18); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2986, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2987: / (V1*V1 + V2*V2)
__pyx_t_18 = PyFloat_FromDouble(((__pyx_v_V1 * __pyx_v_V1) + (__pyx_v_V2 * __pyx_v_V2))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_23 = __Pyx_PyNumber_Divide(__pyx_t_29, __pyx_t_18); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_23); __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_23); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2987, __pyx_L1_error) __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; __pyx_v_q = __pyx_t_5;
2988: # Only of on the fraction of plane
+2989: if q>=0. and q<1.:
__pyx_t_30 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_30 = ((__pyx_v_q < 1.) != 0);
__pyx_t_13 = __pyx_t_30;
__pyx_L10_bool_binop_done:;
if (__pyx_t_13) {
/* … */
}
+2990: X = Ds[0,ii] + k*us[0,ii]
__pyx_t_31 = 0;
__pyx_t_32 = __pyx_v_ii;
__pyx_t_23 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_31 * __pyx_v_Ds.strides[0]) )) + __pyx_t_32)) )))); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_33 = 0;
__pyx_t_34 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_33 * __pyx_v_us.strides[0]) )) + __pyx_t_34)) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_29 = PyNumber_Multiply(__pyx_v_k, __pyx_t_18); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_Add(__pyx_t_23, __pyx_t_29); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2990, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2990, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_v_X = __pyx_t_5;
2991:
2992: # Only if within limits
+2993: if X>=L0 and X<=L1:
__pyx_t_30 = ((__pyx_v_X >= __pyx_v_L0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_30 = ((__pyx_v_X <= __pyx_v_L1) != 0);
__pyx_t_13 = __pyx_t_30;
__pyx_L13_bool_binop_done:;
if (__pyx_t_13) {
/* … */
}
+2994: sca = us[1,ii] * normx_tab[jj] \
__pyx_t_35 = 1;
__pyx_t_36 = __pyx_v_ii;
+2995: + us[2,ii] * normy_tab[jj]
__pyx_t_37 = 2;
__pyx_t_38 = __pyx_v_ii;
__pyx_v_sca = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_35 * __pyx_v_us.strides[0]) )) + __pyx_t_36)) ))) * (__pyx_v_normx_tab[__pyx_v_jj])) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_37 * __pyx_v_us.strides[0]) )) + __pyx_t_38)) ))) * (__pyx_v_normy_tab[__pyx_v_jj])));
2996: # Only if new
+2997: if sca<=0 and k<kout:
__pyx_t_30 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_18 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_29 = PyObject_RichCompare(__pyx_v_k, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_29); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_29); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 2997, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_13 = __pyx_t_30;
__pyx_L16_bool_binop_done:;
if (__pyx_t_13) {
/* … */
goto __pyx_L15;
}
+2998: kout = k
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 2998, __pyx_L1_error) __pyx_v_kout = __pyx_t_5;
+2999: indout = jj
__pyx_v_indout = __pyx_v_jj;
+3000: Done = 1
__pyx_v_Done = 1;
+3001: elif sca>=0 and k<min(kin,kout):
__pyx_t_30 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_5 = __pyx_v_kout;
__pyx_t_4 = __pyx_v_kin;
if (((__pyx_t_5 < __pyx_t_4) != 0)) {
__pyx_t_39 = __pyx_t_5;
} else {
__pyx_t_39 = __pyx_t_4;
}
__pyx_t_29 = PyFloat_FromDouble(__pyx_t_39); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3001, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_18 = PyObject_RichCompare(__pyx_v_k, __pyx_t_29, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3001, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3001, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_13 = __pyx_t_30;
__pyx_L18_bool_binop_done:;
if (__pyx_t_13) {
/* … */
}
__pyx_L15:;
+3002: kin = k
__pyx_t_39 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_39 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3002, __pyx_L1_error) __pyx_v_kin = __pyx_t_39;
+3003: indin = jj
__pyx_v_indin = __pyx_v_jj;
3004:
3005: # For two faces
3006: # Only if plane not parallel to line
+3007: if Cabs(us[0,ii])>EpsPlane:
__pyx_t_40 = 0;
__pyx_t_41 = __pyx_v_ii;
__pyx_t_13 = ((fabs((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_40 * __pyx_v_us.strides[0]) )) + __pyx_t_41)) )))) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_13) {
/* … */
}
3008: # First face
+3009: k = -(Ds[0,ii]-L0)/us[0,ii]
__pyx_t_42 = 0;
__pyx_t_43 = __pyx_v_ii;
__pyx_t_44 = 0;
__pyx_t_45 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble(((-((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_42 * __pyx_v_Ds.strides[0]) )) + __pyx_t_43)) ))) - __pyx_v_L0)) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_44 * __pyx_v_us.strides[0]) )) + __pyx_t_45)) ))))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3009, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_18);
__pyx_t_18 = 0;
3010: # Only if on good side of semi-line
+3011: if k>=0.:
__pyx_t_18 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3011, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3011, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (__pyx_t_13) { /* … */ }
3012: # Only if inside VPoly
+3013: is_in_path = is_point_in_path(Ns, polyx_tab, polyy_tab,
__pyx_v_is_in_path = __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(__pyx_v_Ns, __pyx_v_polyx_tab, __pyx_v_polyy_tab, __pyx_t_39, __pyx_t_5);
+3014: Ds[1,ii]+k*us[1,ii],
__pyx_t_46 = 1;
__pyx_t_47 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_46 * __pyx_v_Ds.strides[0]) )) + __pyx_t_47)) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_48 = 1;
__pyx_t_49 = __pyx_v_ii;
__pyx_t_29 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_48 * __pyx_v_us.strides[0]) )) + __pyx_t_49)) )))); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_23 = PyNumber_Multiply(__pyx_v_k, __pyx_t_29); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_29 = PyNumber_Add(__pyx_t_18, __pyx_t_23); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_39 = __pyx_PyFloat_AsDouble(__pyx_t_29); if (unlikely((__pyx_t_39 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3014, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
+3015: Ds[2,ii]+k*us[2,ii])
__pyx_t_50 = 2;
__pyx_t_51 = __pyx_v_ii;
__pyx_t_29 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_50 * __pyx_v_Ds.strides[0]) )) + __pyx_t_51)) )))); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_52 = 2;
__pyx_t_53 = __pyx_v_ii;
__pyx_t_23 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_52 * __pyx_v_us.strides[0]) )) + __pyx_t_53)) )))); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_18 = PyNumber_Multiply(__pyx_v_k, __pyx_t_23); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_23 = PyNumber_Add(__pyx_t_29, __pyx_t_18); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_23); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3015, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3016: if is_in_path:
__pyx_t_13 = (__pyx_v_is_in_path != 0);
if (__pyx_t_13) {
/* … */
}
+3017: if us[0,ii]<=0 and k<kout:
__pyx_t_54 = 0;
__pyx_t_55 = __pyx_v_ii;
__pyx_t_30 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_54 * __pyx_v_us.strides[0]) )) + __pyx_t_55)) ))) <= 0.0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_23 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3017, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_18 = PyObject_RichCompare(__pyx_v_k, __pyx_t_23, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3017, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3017, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_13 = __pyx_t_30;
__pyx_L24_bool_binop_done:;
if (__pyx_t_13) {
/* … */
goto __pyx_L23;
}
+3018: kout = k
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3018, __pyx_L1_error) __pyx_v_kout = __pyx_t_5;
+3019: indout = -1
__pyx_v_indout = -1;
+3020: Done = 1
__pyx_v_Done = 1;
+3021: elif us[0,ii]>=0 and k<min(kin,kout):
__pyx_t_56 = 0;
__pyx_t_57 = __pyx_v_ii;
__pyx_t_30 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_56 * __pyx_v_us.strides[0]) )) + __pyx_t_57)) ))) >= 0.0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L26_bool_binop_done;
}
__pyx_t_5 = __pyx_v_kout;
__pyx_t_39 = __pyx_v_kin;
if (((__pyx_t_5 < __pyx_t_39) != 0)) {
__pyx_t_4 = __pyx_t_5;
} else {
__pyx_t_4 = __pyx_t_39;
}
__pyx_t_18 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3021, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_23 = PyObject_RichCompare(__pyx_v_k, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3021, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3021, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_13 = __pyx_t_30;
__pyx_L26_bool_binop_done:;
if (__pyx_t_13) {
/* … */
}
__pyx_L23:;
+3022: kin = k
__pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3022, __pyx_L1_error) __pyx_v_kin = __pyx_t_4;
+3023: indin = -1
__pyx_v_indin = -1;
3024: # Second face
+3025: k = -(Ds[0,ii]-L1)/us[0,ii]
__pyx_t_58 = 0;
__pyx_t_59 = __pyx_v_ii;
__pyx_t_60 = 0;
__pyx_t_61 = __pyx_v_ii;
__pyx_t_23 = PyFloat_FromDouble(((-((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_58 * __pyx_v_Ds.strides[0]) )) + __pyx_t_59)) ))) - __pyx_v_L1)) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_60 * __pyx_v_us.strides[0]) )) + __pyx_t_61)) ))))); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_DECREF_SET(__pyx_v_k, __pyx_t_23);
__pyx_t_23 = 0;
3026: # Only if on good side of semi-line
+3027: if k>=0.:
__pyx_t_23 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3027, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0; if (__pyx_t_13) { /* … */ }
3028: # Only if inside VPoly
+3029: is_in_path = is_point_in_path(Ns, polyx_tab, polyy_tab,
__pyx_v_is_in_path = __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(__pyx_v_Ns, __pyx_v_polyx_tab, __pyx_v_polyy_tab, __pyx_t_4, __pyx_t_5);
+3030: Ds[1,ii]+k*us[1,ii],
__pyx_t_62 = 1;
__pyx_t_63 = __pyx_v_ii;
__pyx_t_23 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_62 * __pyx_v_Ds.strides[0]) )) + __pyx_t_63)) )))); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3030, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_64 = 1;
__pyx_t_65 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_64 * __pyx_v_us.strides[0]) )) + __pyx_t_65)) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3030, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_29 = PyNumber_Multiply(__pyx_v_k, __pyx_t_18); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3030, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyNumber_Add(__pyx_t_23, __pyx_t_29); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3030, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3030, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3031: Ds[2,ii]+k*us[2,ii])
__pyx_t_66 = 2;
__pyx_t_67 = __pyx_v_ii;
__pyx_t_18 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_66 * __pyx_v_Ds.strides[0]) )) + __pyx_t_67)) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__pyx_t_68 = 2;
__pyx_t_69 = __pyx_v_ii;
__pyx_t_29 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_68 * __pyx_v_us.strides[0]) )) + __pyx_t_69)) )))); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_23 = PyNumber_Multiply(__pyx_v_k, __pyx_t_29); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_29 = PyNumber_Add(__pyx_t_18, __pyx_t_23); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3031, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_29); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3031, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
+3032: if is_in_path:
__pyx_t_13 = (__pyx_v_is_in_path != 0);
if (__pyx_t_13) {
/* … */
}
+3033: if us[0,ii]>=0 and k<kout:
__pyx_t_70 = 0;
__pyx_t_71 = __pyx_v_ii;
__pyx_t_30 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_70 * __pyx_v_us.strides[0]) )) + __pyx_t_71)) ))) >= 0.0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L31_bool_binop_done;
}
__pyx_t_29 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3033, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_29);
__pyx_t_23 = PyObject_RichCompare(__pyx_v_k, __pyx_t_29, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3033, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3033, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_13 = __pyx_t_30;
__pyx_L31_bool_binop_done:;
if (__pyx_t_13) {
/* … */
goto __pyx_L30;
}
+3034: kout = k
__pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3034, __pyx_L1_error) __pyx_v_kout = __pyx_t_5;
+3035: indout = -2
__pyx_v_indout = -2;
+3036: Done = 1
__pyx_v_Done = 1;
+3037: elif us[0,ii]<=0 and k<min(kin,kout):
__pyx_t_72 = 0;
__pyx_t_73 = __pyx_v_ii;
__pyx_t_30 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_72 * __pyx_v_us.strides[0]) )) + __pyx_t_73)) ))) <= 0.0) != 0);
if (__pyx_t_30) {
} else {
__pyx_t_13 = __pyx_t_30;
goto __pyx_L33_bool_binop_done;
}
__pyx_t_5 = __pyx_v_kout;
__pyx_t_4 = __pyx_v_kin;
if (((__pyx_t_5 < __pyx_t_4) != 0)) {
__pyx_t_39 = __pyx_t_5;
} else {
__pyx_t_39 = __pyx_t_4;
}
__pyx_t_23 = PyFloat_FromDouble(__pyx_t_39); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3037, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_23);
__pyx_t_29 = PyObject_RichCompare(__pyx_v_k, __pyx_t_23, Py_LT); __Pyx_XGOTREF(__pyx_t_29); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3037, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_29); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3037, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
__pyx_t_13 = __pyx_t_30;
__pyx_L33_bool_binop_done:;
if (__pyx_t_13) {
/* … */
}
__pyx_L30:;
+3038: kin = k
__pyx_t_39 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_39 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3038, __pyx_L1_error) __pyx_v_kin = __pyx_t_39;
+3039: indin = -2
__pyx_v_indin = -2;
3040: # == Analyzing if there was impact ====================================
+3041: if Done==1:
__pyx_t_13 = ((__pyx_v_Done == 1) != 0);
if (__pyx_t_13) {
/* … */
}
}
+3042: kout_tab[ii] = kout
(__pyx_v_kout_tab[__pyx_v_ii]) = __pyx_v_kout;
+3043: if kin<kin_tab[ii]:
__pyx_t_13 = ((__pyx_v_kin < (__pyx_v_kin_tab[__pyx_v_ii])) != 0);
if (__pyx_t_13) {
/* … */
}
+3044: kin_tab[ii] = kin
(__pyx_v_kin_tab[__pyx_v_ii]) = __pyx_v_kin;
+3045: return
goto __pyx_L0;
3046:
3047: # ------------------------------------------------------------------
3048:
+3049: cdef inline bint comp_inter_los_vpoly(const double[3] ray_orig,
static CYTHON_INLINE int __pyx_f_4tofu_4geom_5_GG03_comp_inter_los_vpoly(double *__pyx_v_ray_orig, double *__pyx_v_ray_vdir, double const *__pyx_v_lpolyx, double const *__pyx_v_lpolyy, double const *__pyx_v_normx, double const *__pyx_v_normy, int const __pyx_v_nvert, int const __pyx_v_lim_is_none, double const __pyx_v_lim_min, double const __pyx_v_lim_max, int const __pyx_v_forbidbis, double const __pyx_v_upscaDp, double const __pyx_v_upar2, double const __pyx_v_dpar2, double const __pyx_v_invuz, double const __pyx_v_s1x, double const __pyx_v_s1y, double const __pyx_v_s2x, double const __pyx_v_s2y, double const __pyx_v_crit2, CYTHON_UNUSED double const __pyx_v_eps_uz, double const __pyx_v_eps_vz, double const __pyx_v_eps_a, double const __pyx_v_eps_b, double const __pyx_v_eps_pln, int const __pyx_v_is_in_struct, double *__pyx_v_kpin_loc, double *__pyx_v_kpout_loc, int *__pyx_v_ind_loc, double *__pyx_v_vperpin, struct __pyx_opt_args_4tofu_4geom_5_GG03_comp_inter_los_vpoly *__pyx_optional_args) {
int __pyx_v_jj;
int __pyx_v_done;
int __pyx_v_indin;
int __pyx_v_indout;
int __pyx_v_inter_bbox;
double __pyx_v_kout;
double __pyx_v_kin;
double __pyx_v_res_kin;
double __pyx_v_res_kout;
double __pyx_v_sca;
double __pyx_v_sca0;
double __pyx_v_sca1;
double __pyx_v_sca2;
double __pyx_v_q;
double __pyx_v_coeff;
double __pyx_v_delta;
double __pyx_v_sqd;
double __pyx_v_k;
double __pyx_v_sol0;
double __pyx_v_sol1;
double __pyx_v_phi;
double __pyx_v_v0;
double __pyx_v_v1;
double __pyx_v_val_a;
double __pyx_v_val_b;
double __pyx_v_ephi_in0;
double __pyx_v_ephi_in1;
double __pyx_v_sout1;
double __pyx_v_sout0;
double __pyx_v_sin1;
double __pyx_v_sin0;
double __pyx_v_invupar2;
double __pyx_v_cosl0;
double __pyx_v_cosl1;
double __pyx_v_sinl0;
double __pyx_v_sinl1;
int __pyx_r;
if (__pyx_optional_args) {
}
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_comp_inter_los_vpoly {
int __pyx_n;
int debug_plot;
};
3050: const double[3] ray_vdir,
3051: const double* lpolyx,
3052: const double* lpolyy,
3053: const double* normx,
3054: const double* normy,
3055: const int nvert,
3056: const bint lim_is_none,
3057: const double lim_min,
3058: const double lim_max,
3059: const bint forbidbis,
3060: const double upscaDp, const double upar2,
3061: const double dpar2, const double invuz,
3062: const double s1x, const double s1y,
3063: const double s2x, const double s2y,
3064: const double crit2, const double eps_uz,
3065: const double eps_vz, const double eps_a,
3066: const double eps_b, const double eps_pln,
3067: const bint is_in_struct,
3068: double[1] kpin_loc, double[1] kpout_loc,
3069: int[1] ind_loc, double[3] vperpin,
3070: bint debug_plot=False) nogil:
3071: """
3072: Computes the entry and exit point of ONE provided LOS/rays for a single
3073: structure that can be of type "OUT" (is_out_struct=True) or "IN"
3074: (is_out_struct=False). An "OUT" structure cannot be penetrated whereas an
3075: "IN" structure can. The latter is typically a vessel and are toroidally
3076: continous. If a structure is limited we can determine the number of limits
3077: and the limits itself. For optimization reasons we will also pass the
3078: bounding box limits. And the information of the last intersected point, if
3079: any.
3080:
3081: Params
3082: ======
3083: ray_vdir : (3) double array
3084: LOS normalized direction vector
3085: ray_orig : (3) double array
3086: LOS origin points coordinates
3087: lpolyx : (ntotnvert)
3088: List of "x" coordinates of the polygon's vertices of the structures on
3089: the poloidal plane
3090: lpolyy : (ntotnvert)
3091: List of "y" coordinates of the polygon's vertices of the structures on
3092: the poloidal plane
3093: normx : (2, num_vertex-1) double array
3094: List of "x" coordinates of the normal vectors going "inwards" of the
3095: edges of the Polygon defined by lpolyx/y
3096: normy : (2, num_vertex-1) double array
3097: List of "y" coordinates of the normal vectors going "inwards" of the
3098: edges of the Polygon defined by lpolyxy
3099: nvert : int
3100: Number of vertices on the polygon
3101: lim_is_none : bint
3102: Bool to know if the structures (or the vessel) is limited or not.
3103: lim_min : double
3104: Minimum angle where the structure lives. If the structure
3105: is toroidally continous then lim_min = 0
3106: lim_max : double
3107: Maximum angle where the structure lives. If the structure
3108: is toroidally continous then lim_min = 0
3109: forbidbis: bint
3110: Should we forbid values behind vissible radius for each LOS ?
3111: upscaDp: double
3112: Scalar product between LOS' origin and direction
3113: upar2 : double
3114: Norm direction LOS
3115: dpar2 : double
3116: Norm origin LOS
3117: invuz : double
3118: Inverse of 3rd component of direction. ie. if direction is (ux, uy, uz)
3119: then invuz = 1/uz
3120: s1x, s1y, s2x, s2y : double
3121: Compute coordinates of the 2 points where the tangents touch the inner
3122: circle of the Tore, only needed if forbidbis = 0
3123: crit2 : double
3124: Critical value to evaluate for each LOS if horizontal or not
3125: eps<val> : double
3126: Small value, acceptance of error
3127: is_in_struct : bint
3128: Bool to determine if the structure is "OUT" or "IN". An "OUT" structure
3129: cannot be penetrated whereas an "IN" structure can. The latter is
3130: typically a vessel and are toroidally continous.
3131: kpout_loc : double array <INOUT>
3132: Coefficient of exit (kout) of the last point of intersection for the LOS
3133: with the structure or vessel
3134: kpin_loc : double array <INOUT>
3135: Coefficient of exit (kin) of the last point of intersection for the LOS
3136: with the structure or vessel
3137: vperpin : (3) double array <INOUT>
3138: Coordinates of the normal vector of impact of the LOS (0 if none)
3139: Return
3140: ======
3141: bool : If true, there was in impact
3142: If false, no intersection between LOS and structure
3143: """
3144: cdef int jj
+3145: cdef int done=0
__pyx_v_done = 0;
+3146: cdef int indin=0
__pyx_v_indin = 0;
+3147: cdef int indout=0
__pyx_v_indout = 0;
3148: cdef bint inter_bbox
3149: cdef double kout, kin
+3150: cdef double res_kin = kpin_loc[0]
__pyx_v_res_kin = (__pyx_v_kpin_loc[0]);
+3151: cdef double res_kout = kpout_loc[0]
__pyx_v_res_kout = (__pyx_v_kpout_loc[0]);
+3152: cdef double sca=0., sca0=0., sca1=0., sca2=0.
__pyx_v_sca = 0.; __pyx_v_sca0 = 0.; __pyx_v_sca1 = 0.; __pyx_v_sca2 = 0.;
+3153: cdef double q, coeff, delta, sqd, k, sol0, sol1, phi=0.
__pyx_v_phi = 0.;
3154: cdef double v0, v1, val_a, val_b, ephi_in0, ephi_in1
3155: cdef double sout1, sout0
3156: cdef double sin1, sin0
3157: cdef double invupar2
3158: cdef double cosl0, cosl1, sinl0, sinl1
3159: cdef double[3] opp_dir
3160:
3161: # -- Computing some seful values -------------------------------------------
+3162: cosl0 = Ccos(lim_min)
__pyx_v_cosl0 = cos(__pyx_v_lim_min);
+3163: cosl1 = Ccos(lim_max)
__pyx_v_cosl1 = cos(__pyx_v_lim_max);
+3164: sinl0 = Csin(lim_min)
__pyx_v_sinl0 = sin(__pyx_v_lim_min);
+3165: sinl1 = Csin(lim_max)
__pyx_v_sinl1 = sin(__pyx_v_lim_max);
+3166: invupar2 = 1./upar2
__pyx_v_invupar2 = (1. / __pyx_v_upar2);
3167: # == Compute all solutions =================================================
3168: # Set tolerance value for ray_vdir[2,ii]
3169: # eps_uz is the tolerated DZ across 20m (max Tokamak size)
+3170: kout, kin, done = 1.e12, 1.e12, 0
__pyx_t_1 = 1.e12; __pyx_t_2 = 1.e12; __pyx_t_3 = 0; __pyx_v_kout = __pyx_t_1; __pyx_v_kin = __pyx_t_2; __pyx_v_done = __pyx_t_3;
+3171: if ray_vdir[2] * ray_vdir[2] < crit2:
__pyx_t_4 = ((((__pyx_v_ray_vdir[2]) * (__pyx_v_ray_vdir[2])) < __pyx_v_crit2) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L3;
}
3172: # -- Case with horizontal semi-line ------------------------------------
+3173: for jj in range(nvert):
__pyx_t_3 = __pyx_v_nvert;
__pyx_t_5 = __pyx_t_3;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_jj = __pyx_t_6;
3174: # Solutions exist only in the case with non-horizontal
3175: # segment (i.e.: cone, not plane)
+3176: if (lpolyy[jj+1] - lpolyy[jj])**2 > eps_vz * eps_vz:
__pyx_t_4 = ((pow(((__pyx_v_lpolyy[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyy[__pyx_v_jj])), 2.0) > (__pyx_v_eps_vz * __pyx_v_eps_vz)) != 0);
if (__pyx_t_4) {
/* … */
}
}
+3177: q = (ray_orig[2] - lpolyy[jj]) / (lpolyy[jj+1] - lpolyy[jj])
__pyx_v_q = (((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj])) / ((__pyx_v_lpolyy[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyy[__pyx_v_jj])));
3178: # The intersection must stand on the segment
+3179: if q>=0 and q<1:
__pyx_t_7 = ((__pyx_v_q >= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L8_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_q < 1.0) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L8_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
3180: coeff = q * q * (lpolyx[jj+1]-lpolyx[jj])**2 + \
+3181: 2. * q * lpolyx[jj] * (lpolyx[jj+1] - lpolyx[jj]) + \
__pyx_v_coeff = ((((__pyx_v_q * __pyx_v_q) * pow(((__pyx_v_lpolyx[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyx[__pyx_v_jj])), 2.0)) + (((2. * __pyx_v_q) * (__pyx_v_lpolyx[__pyx_v_jj])) * ((__pyx_v_lpolyx[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyx[__pyx_v_jj])))) + ((__pyx_v_lpolyx[__pyx_v_jj]) * (__pyx_v_lpolyx[__pyx_v_jj])));
3182: lpolyx[jj] * lpolyx[jj]
+3183: delta = upscaDp * upscaDp - upar2 * (dpar2 - coeff)
__pyx_v_delta = ((__pyx_v_upscaDp * __pyx_v_upscaDp) - (__pyx_v_upar2 * (__pyx_v_dpar2 - __pyx_v_coeff)));
+3184: if delta>0.:
__pyx_t_4 = ((__pyx_v_delta > 0.) != 0);
if (__pyx_t_4) {
/* … */
}
+3185: sqd = Csqrt(delta)
__pyx_v_sqd = sqrt(__pyx_v_delta);
3186: # The intersection must be on the semi-line (i.e.: k>=0)
3187: # First solution
+3188: if -upscaDp - sqd >= 0:
__pyx_t_4 = ((((-__pyx_v_upscaDp) - __pyx_v_sqd) >= 0.0) != 0);
if (__pyx_t_4) {
/* … */
}
+3189: k = (-upscaDp - sqd) * invupar2
__pyx_v_k = (((-__pyx_v_upscaDp) - __pyx_v_sqd) * __pyx_v_invupar2);
+3190: sol0 = ray_orig[0] + k * ray_vdir[0]
__pyx_v_sol0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+3191: sol1 = ray_orig[1] + k * ray_vdir[1]
__pyx_v_sol1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+3192: if forbidbis:
__pyx_t_4 = (__pyx_v_forbidbis != 0);
if (__pyx_t_4) {
/* … */
}
+3193: sca0 = (sol0-s1x)*ray_orig[0] + \
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_s1x) * (__pyx_v_ray_orig[0])) + ((__pyx_v_sol1 - __pyx_v_s1y) * (__pyx_v_ray_orig[1])));
3194: (sol1-s1y)*ray_orig[1]
+3195: sca1 = (sol0-s1x)*s1x + (sol1-s1y)*s1y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_s1x) * __pyx_v_s1x) + ((__pyx_v_sol1 - __pyx_v_s1y) * __pyx_v_s1y));
+3196: sca2 = (sol0-s2x)*s2x + (sol1-s2y)*s2y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_s2x) * __pyx_v_s2x) + ((__pyx_v_sol1 - __pyx_v_s2y) * __pyx_v_s2y));
+3197: if not forbidbis or (forbidbis and not
__pyx_t_7 = ((!(__pyx_v_forbidbis != 0)) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L14_bool_binop_done;
}
__pyx_t_7 = (__pyx_v_forbidbis != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L14_bool_binop_done;
}
/* … */
__pyx_t_8 = ((!__pyx_t_7) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L14_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+3198: (sca0<0 and sca1<0 and
__pyx_t_8 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_7 = __pyx_t_8;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_8 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_7 = __pyx_t_8;
goto __pyx_L17_bool_binop_done;
}
+3199: sca2<0)):
__pyx_t_8 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_7 = __pyx_t_8;
__pyx_L17_bool_binop_done:;
3200: # Get the normalized perpendicular vector
3201: # at intersection
+3202: phi = Catan2(sol1, sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
3203: # Check sol inside the Lim
+3204: if lim_is_none or (not lim_is_none and
__pyx_t_8 = (__pyx_v_lim_is_none != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L21_bool_binop_done;
}
__pyx_t_8 = ((!(__pyx_v_lim_is_none != 0)) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L21_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3205: ((lim_min<lim_max and
__pyx_t_8 = ((__pyx_v_lim_min < __pyx_v_lim_max) != 0);
if (!__pyx_t_8) {
goto __pyx_L24_next_or;
} else {
}
+3206: lim_min<=phi and
__pyx_t_8 = ((__pyx_v_lim_min <= __pyx_v_phi) != 0);
if (!__pyx_t_8) {
goto __pyx_L24_next_or;
} else {
}
+3207: phi<=lim_max)
__pyx_t_8 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L21_bool_binop_done;
}
__pyx_L24_next_or:;
+3208: or (lim_min>lim_max and
__pyx_t_8 = ((__pyx_v_lim_min > __pyx_v_lim_max) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L21_bool_binop_done;
}
+3209: (phi>=lim_min or
__pyx_t_8 = ((__pyx_v_phi >= __pyx_v_lim_min) != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L21_bool_binop_done;
}
+3210: phi<=lim_max)))):
__pyx_t_8 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L21_bool_binop_done:;
3211: # Get the scalar product to determine
3212: # entry or exit point
3213: sca = Ccos(phi)*normx[jj]*ray_vdir[0] + \
+3214: Csin(phi)*normx[jj]*ray_vdir[1] + \
__pyx_v_sca = ((((cos(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[0])) + ((sin(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[1]))) + ((__pyx_v_normy[__pyx_v_jj]) * (__pyx_v_ray_vdir[2])));
3215: normy[jj]*ray_vdir[2]
+3216: if sca<=0 and k<kout:
__pyx_t_8 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_8 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L30_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L29;
}
+3217: kout = k
__pyx_v_kout = __pyx_v_k;
+3218: done = 1
__pyx_v_done = 1;
+3219: indout = jj
__pyx_v_indout = __pyx_v_jj;
+3220: elif sca>=0 and k<min(kin,kout):
__pyx_t_8 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L32_bool_binop_done;
}
__pyx_t_2 = __pyx_v_kout;
__pyx_t_1 = __pyx_v_kin;
if (((__pyx_t_2 < __pyx_t_1) != 0)) {
__pyx_t_9 = __pyx_t_2;
} else {
__pyx_t_9 = __pyx_t_1;
}
__pyx_t_8 = ((__pyx_v_k < __pyx_t_9) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L32_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L29:;
+3221: kin = k
__pyx_v_kin = __pyx_v_k;
+3222: indin = jj
__pyx_v_indin = __pyx_v_jj;
3223:
3224: # Second solution
+3225: if -upscaDp + sqd >=0:
__pyx_t_4 = ((((-__pyx_v_upscaDp) + __pyx_v_sqd) >= 0.0) != 0);
if (__pyx_t_4) {
/* … */
}
+3226: k = (-upscaDp + sqd)*invupar2
__pyx_v_k = (((-__pyx_v_upscaDp) + __pyx_v_sqd) * __pyx_v_invupar2);
+3227: sol0 = ray_orig[0] + k * ray_vdir[0]
__pyx_v_sol0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+3228: sol1 = ray_orig[1] + k * ray_vdir[1]
__pyx_v_sol1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+3229: if forbidbis:
__pyx_t_4 = (__pyx_v_forbidbis != 0);
if (__pyx_t_4) {
/* … */
}
+3230: sca0 = (sol0-s1x) * ray_orig[0] + \
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_s1x) * (__pyx_v_ray_orig[0])) + ((__pyx_v_sol1 - __pyx_v_s1y) * (__pyx_v_ray_orig[1])));
3231: (sol1-s1y) * ray_orig[1]
+3232: sca1 = (sol0-s1x) * s1x + (sol1-s1y) * s1y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_s1x) * __pyx_v_s1x) + ((__pyx_v_sol1 - __pyx_v_s1y) * __pyx_v_s1y));
+3233: sca2 = (sol0-s2x) * s2x + (sol1-s2y) * s2y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_s2x) * __pyx_v_s2x) + ((__pyx_v_sol1 - __pyx_v_s2y) * __pyx_v_s2y));
+3234: if not forbidbis or (forbidbis and not
__pyx_t_8 = ((!(__pyx_v_forbidbis != 0)) != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L37_bool_binop_done;
}
__pyx_t_8 = (__pyx_v_forbidbis != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L37_bool_binop_done;
}
/* … */
__pyx_t_7 = ((!__pyx_t_8) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L37_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+3235: (sca0<0 and sca1<0 and
__pyx_t_7 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_8 = __pyx_t_7;
goto __pyx_L40_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_8 = __pyx_t_7;
goto __pyx_L40_bool_binop_done;
}
+3236: sca2<0)):
__pyx_t_7 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_8 = __pyx_t_7;
__pyx_L40_bool_binop_done:;
3237: # Get the normalized perpendicular vector
3238: # at intersection
+3239: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+3240: if lim_is_none or (not lim_is_none and
__pyx_t_7 = (__pyx_v_lim_is_none != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L44_bool_binop_done;
}
__pyx_t_7 = ((!(__pyx_v_lim_is_none != 0)) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L44_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3241: ((lim_min<lim_max and
__pyx_t_7 = ((__pyx_v_lim_min < __pyx_v_lim_max) != 0);
if (!__pyx_t_7) {
goto __pyx_L47_next_or;
} else {
}
+3242: lim_min<=phi and
__pyx_t_7 = ((__pyx_v_lim_min <= __pyx_v_phi) != 0);
if (!__pyx_t_7) {
goto __pyx_L47_next_or;
} else {
}
+3243: phi<=lim_max) or
__pyx_t_7 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L44_bool_binop_done;
}
__pyx_L47_next_or:;
+3244: (lim_min>lim_max and
__pyx_t_7 = ((__pyx_v_lim_min > __pyx_v_lim_max) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L44_bool_binop_done;
}
+3245: (phi>=lim_min or
__pyx_t_7 = ((__pyx_v_phi >= __pyx_v_lim_min) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L44_bool_binop_done;
}
+3246: phi<=lim_max))
__pyx_t_7 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L44_bool_binop_done:;
3247: )):
3248: # Get the scalar product to determine
3249: # entry or exit point
3250: sca = Ccos(phi)*normx[jj]*ray_vdir[0] + \
+3251: Csin(phi)*normx[jj]*ray_vdir[1] + \
__pyx_v_sca = ((((cos(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[0])) + ((sin(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[1]))) + ((__pyx_v_normy[__pyx_v_jj]) * (__pyx_v_ray_vdir[2])));
3252: normy[jj]*ray_vdir[2]
+3253: if sca<=0 and k<kout:
__pyx_t_7 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L53_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L53_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L52;
}
+3254: kout = k
__pyx_v_kout = __pyx_v_k;
+3255: done = 1
__pyx_v_done = 1;
+3256: indout = jj
__pyx_v_indout = __pyx_v_jj;
+3257: elif sca>=0 and k<min(kin,kout):
__pyx_t_7 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L55_bool_binop_done;
}
__pyx_t_9 = __pyx_v_kout;
__pyx_t_2 = __pyx_v_kin;
if (((__pyx_t_9 < __pyx_t_2) != 0)) {
__pyx_t_1 = __pyx_t_9;
} else {
__pyx_t_1 = __pyx_t_2;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_t_1) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L55_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L52:;
+3258: kin = k
__pyx_v_kin = __pyx_v_k;
+3259: indin = jj
__pyx_v_indin = __pyx_v_jj;
3260: else:
3261: # == More general non-horizontal semi-line case ============================
+3262: for jj in range(nvert):
/*else*/ {
__pyx_t_3 = __pyx_v_nvert;
__pyx_t_5 = __pyx_t_3;
for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
__pyx_v_jj = __pyx_t_6;
+3263: v0 = lpolyx[jj+1]-lpolyx[jj]
__pyx_v_v0 = ((__pyx_v_lpolyx[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyx[__pyx_v_jj]));
+3264: v1 = lpolyy[jj+1]-lpolyy[jj]
__pyx_v_v1 = ((__pyx_v_lpolyy[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyy[__pyx_v_jj]));
+3265: val_a = v0 * v0 - upar2 * v1 * invuz * v1 * invuz
__pyx_v_val_a = ((__pyx_v_v0 * __pyx_v_v0) - ((((__pyx_v_upar2 * __pyx_v_v1) * __pyx_v_invuz) * __pyx_v_v1) * __pyx_v_invuz));
3266: val_b = lpolyx[jj] * v0 + v1 * (ray_orig[2] - lpolyy[jj]) * upar2 *\
+3267: invuz * invuz - upscaDp * v1 * invuz
__pyx_v_val_b = ((((__pyx_v_lpolyx[__pyx_v_jj]) * __pyx_v_v0) + ((((__pyx_v_v1 * ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_upar2) * __pyx_v_invuz) * __pyx_v_invuz)) - ((__pyx_v_upscaDp * __pyx_v_v1) * __pyx_v_invuz));
3268: coeff = - upar2 * (ray_orig[2] - lpolyy[jj])**2 * invuz * invuz +\
3269: 2. * upscaDp * (ray_orig[2]-lpolyy[jj]) * invuz -\
+3270: dpar2 + lpolyx[jj] * lpolyx[jj]
__pyx_v_coeff = (((((((-__pyx_v_upar2) * pow(((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj])), 2.0)) * __pyx_v_invuz) * __pyx_v_invuz) + (((2. * __pyx_v_upscaDp) * ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz)) - __pyx_v_dpar2) + ((__pyx_v_lpolyx[__pyx_v_jj]) * (__pyx_v_lpolyx[__pyx_v_jj])));
+3271: if ((val_a * val_a < eps_a * eps_a) and
__pyx_t_7 = (((__pyx_v_val_a * __pyx_v_val_a) < (__pyx_v_eps_a * __pyx_v_eps_a)) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L60_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
goto __pyx_L59;
}
+3272: (val_b * val_b > eps_b * eps_b)):
__pyx_t_7 = (((__pyx_v_val_b * __pyx_v_val_b) > (__pyx_v_eps_b * __pyx_v_eps_b)) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L60_bool_binop_done:;
+3273: q = -coeff / (2. * val_b)
__pyx_v_q = ((-__pyx_v_coeff) / (2. * __pyx_v_val_b));
+3274: if q >= 0. and q < 1.:
__pyx_t_7 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L63_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_q < 1.) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L63_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+3275: k = (q * v1 - (ray_orig[2] - lpolyy[jj])) * invuz
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz);
+3276: if k >= 0:
__pyx_t_4 = ((__pyx_v_k >= 0.0) != 0);
if (__pyx_t_4) {
/* … */
}
+3277: sol0 = ray_orig[0] + k * ray_vdir[0]
__pyx_v_sol0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+3278: sol1 = ray_orig[1] + k * ray_vdir[1]
__pyx_v_sol1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+3279: if forbidbis:
__pyx_t_4 = (__pyx_v_forbidbis != 0);
if (__pyx_t_4) {
/* … */
}
+3280: sca0 = (sol0-s1x)*ray_orig[0] + \
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_s1x) * (__pyx_v_ray_orig[0])) + ((__pyx_v_sol1 - __pyx_v_s1y) * (__pyx_v_ray_orig[1])));
3281: (sol1-s1y)*ray_orig[1]
+3282: sca1 = (sol0-s1x)*s1x + (sol1-s1y)*s1y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_s1x) * __pyx_v_s1x) + ((__pyx_v_sol1 - __pyx_v_s1y) * __pyx_v_s1y));
+3283: sca2 = (sol0-s2x)*s2x + (sol1-s2y)*s2y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_s2x) * __pyx_v_s2x) + ((__pyx_v_sol1 - __pyx_v_s2y) * __pyx_v_s2y));
+3284: if sca0<0 and sca1<0 and sca2<0:
__pyx_t_7 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L68_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L68_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L68_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+3285: continue
goto __pyx_L57_continue;
3286: # Get the normalized perpendicular vect at intersection
+3287: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+3288: if lim_is_none or (not lim_is_none and
__pyx_t_7 = (__pyx_v_lim_is_none != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L72_bool_binop_done;
}
__pyx_t_7 = ((!(__pyx_v_lim_is_none != 0)) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L72_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3289: ((lim_min < lim_max and
__pyx_t_7 = ((__pyx_v_lim_min < __pyx_v_lim_max) != 0);
if (!__pyx_t_7) {
goto __pyx_L75_next_or;
} else {
}
+3290: lim_min <= phi and
__pyx_t_7 = ((__pyx_v_lim_min <= __pyx_v_phi) != 0);
if (!__pyx_t_7) {
goto __pyx_L75_next_or;
} else {
}
+3291: phi <= lim_max) or
__pyx_t_7 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L72_bool_binop_done;
}
__pyx_L75_next_or:;
+3292: (lim_min > lim_max and
__pyx_t_7 = ((__pyx_v_lim_min > __pyx_v_lim_max) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L72_bool_binop_done;
}
+3293: (phi >= lim_min or
__pyx_t_7 = ((__pyx_v_phi >= __pyx_v_lim_min) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L72_bool_binop_done;
}
+3294: phi <= lim_max)))):
__pyx_t_7 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L72_bool_binop_done:;
3295: # Get the scal prod to determine entry or exit point
3296: sca = Ccos(phi) * normx[jj] * ray_vdir[0] + \
+3297: Csin(phi) * normx[jj] * ray_vdir[1] + \
__pyx_v_sca = ((((cos(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[0])) + ((sin(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[1]))) + ((__pyx_v_normy[__pyx_v_jj]) * (__pyx_v_ray_vdir[2])));
3298: normy[jj] * ray_vdir[2]
+3299: if sca<=0 and k<kout:
__pyx_t_7 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L81_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L81_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L80;
}
+3300: kout = k
__pyx_v_kout = __pyx_v_k;
+3301: done = 1
__pyx_v_done = 1;
+3302: indout = jj
__pyx_v_indout = __pyx_v_jj;
+3303: elif sca>=0 and k<min(kin,kout):
__pyx_t_7 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L83_bool_binop_done;
}
__pyx_t_1 = __pyx_v_kout;
__pyx_t_9 = __pyx_v_kin;
if (((__pyx_t_1 < __pyx_t_9) != 0)) {
__pyx_t_2 = __pyx_t_1;
} else {
__pyx_t_2 = __pyx_t_9;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_t_2) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L83_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L80:;
+3304: kin = k
__pyx_v_kin = __pyx_v_k;
+3305: indin = jj
__pyx_v_indin = __pyx_v_jj;
+3306: elif ((val_a * val_a >= eps_a * eps_a) and
__pyx_t_7 = (((__pyx_v_val_a * __pyx_v_val_a) >= (__pyx_v_eps_a * __pyx_v_eps_a)) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L85_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
__pyx_L59:;
__pyx_L57_continue:;
}
}
__pyx_L3:;
+3307: (val_b * val_b > val_a * coeff)):
__pyx_t_7 = (((__pyx_v_val_b * __pyx_v_val_b) > (__pyx_v_val_a * __pyx_v_coeff)) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L85_bool_binop_done:;
+3308: sqd = Csqrt(val_b * val_b - val_a * coeff)
__pyx_v_sqd = sqrt(((__pyx_v_val_b * __pyx_v_val_b) - (__pyx_v_val_a * __pyx_v_coeff)));
3309: # First solution
+3310: q = (-val_b + sqd) / val_a
__pyx_v_q = (((-__pyx_v_val_b) + __pyx_v_sqd) / __pyx_v_val_a);
+3311: if q >= 0. and q < 1.:
__pyx_t_7 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L88_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_q < 1.) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L88_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+3312: k = (q * v1 - (ray_orig[2] - lpolyy[jj])) * invuz
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz);
+3313: if k >= 0.:
__pyx_t_4 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_4) {
/* … */
}
+3314: sol0 = ray_orig[0] + k * ray_vdir[0]
__pyx_v_sol0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+3315: sol1 = ray_orig[1] + k * ray_vdir[1]
__pyx_v_sol1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+3316: if forbidbis:
__pyx_t_4 = (__pyx_v_forbidbis != 0);
if (__pyx_t_4) {
/* … */
}
+3317: sca0 = (sol0-s1x) * ray_orig[0] + \
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_s1x) * (__pyx_v_ray_orig[0])) + ((__pyx_v_sol1 - __pyx_v_s1y) * (__pyx_v_ray_orig[1])));
3318: (sol1-s1y) * ray_orig[1]
+3319: sca1 = (sol0-s1x) * s1x + (sol1-s1y) * s1y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_s1x) * __pyx_v_s1x) + ((__pyx_v_sol1 - __pyx_v_s1y) * __pyx_v_s1y));
+3320: sca2 = (sol0-s2x) * s2x + (sol1-s2y) * s2y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_s2x) * __pyx_v_s2x) + ((__pyx_v_sol1 - __pyx_v_s2y) * __pyx_v_s2y));
+3321: if not forbidbis or (forbidbis and
__pyx_t_7 = ((!(__pyx_v_forbidbis != 0)) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L93_bool_binop_done;
}
__pyx_t_7 = (__pyx_v_forbidbis != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L93_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3322: not (sca0<0 and sca1<0 and
__pyx_t_8 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_7 = __pyx_t_8;
goto __pyx_L96_bool_binop_done;
}
__pyx_t_8 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_7 = __pyx_t_8;
goto __pyx_L96_bool_binop_done;
}
/* … */
__pyx_t_8 = ((!__pyx_t_7) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L93_bool_binop_done:;
+3323: sca2<0)):
__pyx_t_8 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_7 = __pyx_t_8;
__pyx_L96_bool_binop_done:;
3324: # Get the normalized perpendicular vector at inter
+3325: phi = Catan2(sol1, sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+3326: if lim_is_none or (not lim_is_none and
__pyx_t_8 = (__pyx_v_lim_is_none != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L100_bool_binop_done;
}
__pyx_t_8 = ((!(__pyx_v_lim_is_none != 0)) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L100_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3327: ((lim_min < lim_max and
__pyx_t_8 = ((__pyx_v_lim_min < __pyx_v_lim_max) != 0);
if (!__pyx_t_8) {
goto __pyx_L103_next_or;
} else {
}
+3328: lim_min <= phi and
__pyx_t_8 = ((__pyx_v_lim_min <= __pyx_v_phi) != 0);
if (!__pyx_t_8) {
goto __pyx_L103_next_or;
} else {
}
+3329: phi <= lim_max) or
__pyx_t_8 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L100_bool_binop_done;
}
__pyx_L103_next_or:;
+3330: (lim_min > lim_max and
__pyx_t_8 = ((__pyx_v_lim_min > __pyx_v_lim_max) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L100_bool_binop_done;
}
+3331: (phi >= lim_min or
__pyx_t_8 = ((__pyx_v_phi >= __pyx_v_lim_min) != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L100_bool_binop_done;
}
+3332: phi <= lim_max)))):
__pyx_t_8 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L100_bool_binop_done:;
3333: # Get the scal prod to determine in or out point
3334: sca = Ccos(phi) * normx[jj] * ray_vdir[0] + \
+3335: Csin(phi) * normx[jj] * ray_vdir[1] + \
__pyx_v_sca = ((((cos(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[0])) + ((sin(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[1]))) + ((__pyx_v_normy[__pyx_v_jj]) * (__pyx_v_ray_vdir[2])));
3336: normy[jj] * ray_vdir[2]
+3337: if sca<=0 and k<kout:
__pyx_t_8 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L109_bool_binop_done;
}
__pyx_t_8 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L109_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L108;
}
+3338: kout = k
__pyx_v_kout = __pyx_v_k;
+3339: done = 1
__pyx_v_done = 1;
+3340: indout = jj
__pyx_v_indout = __pyx_v_jj;
+3341: elif sca>=0 and k<min(kin,kout):
__pyx_t_8 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L111_bool_binop_done;
}
__pyx_t_2 = __pyx_v_kout;
__pyx_t_1 = __pyx_v_kin;
if (((__pyx_t_2 < __pyx_t_1) != 0)) {
__pyx_t_9 = __pyx_t_2;
} else {
__pyx_t_9 = __pyx_t_1;
}
__pyx_t_8 = ((__pyx_v_k < __pyx_t_9) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L111_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L108:;
+3342: kin = k
__pyx_v_kin = __pyx_v_k;
+3343: indin = jj
__pyx_v_indin = __pyx_v_jj;
3344:
3345: # == Second solution ===========================================
+3346: q = (-val_b - sqd) / val_a
__pyx_v_q = (((-__pyx_v_val_b) - __pyx_v_sqd) / __pyx_v_val_a);
+3347: if q >= 0. and q < 1.:
__pyx_t_8 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L114_bool_binop_done;
}
__pyx_t_8 = ((__pyx_v_q < 1.) != 0);
__pyx_t_4 = __pyx_t_8;
__pyx_L114_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
+3348: k = (q * v1 - (ray_orig[2] - lpolyy[jj])) * invuz
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz);
+3349: if k>=0.:
__pyx_t_4 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_4) {
/* … */
}
+3350: sol0 = ray_orig[0] + k * ray_vdir[0]
__pyx_v_sol0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+3351: sol1 = ray_orig[1] + k * ray_vdir[1]
__pyx_v_sol1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+3352: if forbidbis:
__pyx_t_4 = (__pyx_v_forbidbis != 0);
if (__pyx_t_4) {
/* … */
}
+3353: sca0 = (sol0-s1x) * ray_orig[0] + \
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_s1x) * (__pyx_v_ray_orig[0])) + ((__pyx_v_sol1 - __pyx_v_s1y) * (__pyx_v_ray_orig[1])));
3354: (sol1-s1y) * ray_orig[1]
+3355: sca1 = (sol0-s1x) * s1x + (sol1-s1y) * s1y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_s1x) * __pyx_v_s1x) + ((__pyx_v_sol1 - __pyx_v_s1y) * __pyx_v_s1y));
+3356: sca2 = (sol0-s2x) * s2x + (sol1-s2y) * s2y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_s2x) * __pyx_v_s2x) + ((__pyx_v_sol1 - __pyx_v_s2y) * __pyx_v_s2y));
+3357: if not forbidbis or (forbidbis and
__pyx_t_8 = ((!(__pyx_v_forbidbis != 0)) != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L119_bool_binop_done;
}
__pyx_t_8 = (__pyx_v_forbidbis != 0);
if (__pyx_t_8) {
} else {
__pyx_t_4 = __pyx_t_8;
goto __pyx_L119_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3358: not (sca0<0 and sca1<0 and
__pyx_t_7 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_8 = __pyx_t_7;
goto __pyx_L122_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_8 = __pyx_t_7;
goto __pyx_L122_bool_binop_done;
}
/* … */
__pyx_t_7 = ((!__pyx_t_8) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L119_bool_binop_done:;
+3359: sca2<0)):
__pyx_t_7 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_8 = __pyx_t_7;
__pyx_L122_bool_binop_done:;
3360: # Get the normalized perpendicular vector at inter
+3361: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+3362: if lim_is_none or (not lim_is_none and
__pyx_t_7 = (__pyx_v_lim_is_none != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L126_bool_binop_done;
}
__pyx_t_7 = ((!(__pyx_v_lim_is_none != 0)) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L126_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
+3363: ((lim_min < lim_max and
__pyx_t_7 = ((__pyx_v_lim_min < __pyx_v_lim_max) != 0);
if (!__pyx_t_7) {
goto __pyx_L129_next_or;
} else {
}
+3364: lim_min <= phi and
__pyx_t_7 = ((__pyx_v_lim_min <= __pyx_v_phi) != 0);
if (!__pyx_t_7) {
goto __pyx_L129_next_or;
} else {
}
+3365: phi <= lim_max) or
__pyx_t_7 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L126_bool_binop_done;
}
__pyx_L129_next_or:;
+3366: (lim_min>lim_max and
__pyx_t_7 = ((__pyx_v_lim_min > __pyx_v_lim_max) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L126_bool_binop_done;
}
+3367: (phi>=lim_min or
__pyx_t_7 = ((__pyx_v_phi >= __pyx_v_lim_min) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L126_bool_binop_done;
}
+3368: phi<=lim_max)))):
__pyx_t_7 = ((__pyx_v_phi <= __pyx_v_lim_max) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L126_bool_binop_done:;
3369: # Get the scal prod to determine if in or out
3370: sca = Ccos(phi) * normx[jj] * ray_vdir[0] + \
+3371: Csin(phi) * normx[jj] * ray_vdir[1] + \
__pyx_v_sca = ((((cos(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[0])) + ((sin(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_jj])) * (__pyx_v_ray_vdir[1]))) + ((__pyx_v_normy[__pyx_v_jj]) * (__pyx_v_ray_vdir[2])));
3372: normy[jj] * ray_vdir[2]
+3373: if sca<=0 and k<kout:
__pyx_t_7 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L135_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L135_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L134;
}
+3374: kout = k
__pyx_v_kout = __pyx_v_k;
+3375: done = 1
__pyx_v_done = 1;
+3376: indout = jj
__pyx_v_indout = __pyx_v_jj;
+3377: elif sca>=0 and k<min(kin,kout):
__pyx_t_7 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L137_bool_binop_done;
}
__pyx_t_9 = __pyx_v_kout;
__pyx_t_2 = __pyx_v_kin;
if (((__pyx_t_9 < __pyx_t_2) != 0)) {
__pyx_t_1 = __pyx_t_9;
} else {
__pyx_t_1 = __pyx_t_2;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_t_1) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L137_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L134:;
+3378: kin = k
__pyx_v_kin = __pyx_v_k;
+3379: indin = jj
__pyx_v_indin = __pyx_v_jj;
3380:
+3381: if not lim_is_none:
__pyx_t_4 = ((!(__pyx_v_lim_is_none != 0)) != 0);
if (__pyx_t_4) {
/* … */
}
+3382: ephi_in0 = -sinl0
__pyx_v_ephi_in0 = (-__pyx_v_sinl0);
+3383: ephi_in1 = cosl0
__pyx_v_ephi_in1 = __pyx_v_cosl0;
+3384: if Cabs(ray_vdir[0] * ephi_in0 + ray_vdir[1] * ephi_in1) > eps_pln:
__pyx_t_4 = ((fabs((((__pyx_v_ray_vdir[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_vdir[1]) * __pyx_v_ephi_in1))) > __pyx_v_eps_pln) != 0);
if (__pyx_t_4) {
/* … */
}
3385: k = -(ray_orig[0] * ephi_in0 + ray_orig[1] * ephi_in1) \
+3386: /(ray_vdir[0] * ephi_in0 + ray_vdir[1] * ephi_in1)
__pyx_v_k = ((-(((__pyx_v_ray_orig[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_orig[1]) * __pyx_v_ephi_in1))) / (((__pyx_v_ray_vdir[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_vdir[1]) * __pyx_v_ephi_in1)));
+3387: if k >= 0:
__pyx_t_4 = ((__pyx_v_k >= 0.0) != 0);
if (__pyx_t_4) {
/* … */
}
3388: # Check if in ves_poly
+3389: sol0 = (ray_orig[0] + k * ray_vdir[0]) * cosl0 + \
__pyx_v_sol0 = ((((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0]))) * __pyx_v_cosl0) + (((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1]))) * __pyx_v_sinl0));
3390: (ray_orig[1] + k * ray_vdir[1]) * sinl0
+3391: sol1 = ray_orig[2] + k * ray_vdir[2]
__pyx_v_sol1 = ((__pyx_v_ray_orig[2]) + (__pyx_v_k * (__pyx_v_ray_vdir[2])));
+3392: inter_bbox = is_point_in_path(nvert, lpolyx, lpolyy, sol0, sol1)
__pyx_v_inter_bbox = __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(__pyx_v_nvert, __pyx_v_lpolyx, __pyx_v_lpolyy, __pyx_v_sol0, __pyx_v_sol1);
+3393: if inter_bbox:
__pyx_t_4 = (__pyx_v_inter_bbox != 0);
if (__pyx_t_4) {
/* … */
}
3394: # Check PIn (POut not possible for limited torus)
+3395: sca = ray_vdir[0] * ephi_in0 + ray_vdir[1] * ephi_in1
__pyx_v_sca = (((__pyx_v_ray_vdir[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_vdir[1]) * __pyx_v_ephi_in1));
+3396: if sca<=0 and k<kout:
__pyx_t_7 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L144_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L144_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L143;
}
+3397: kout = k
__pyx_v_kout = __pyx_v_k;
+3398: done = 1
__pyx_v_done = 1;
+3399: indout = -1
__pyx_v_indout = -1;
+3400: elif sca>=0 and k<min(kin,kout):
__pyx_t_7 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L146_bool_binop_done;
}
__pyx_t_1 = __pyx_v_kout;
__pyx_t_9 = __pyx_v_kin;
if (((__pyx_t_1 < __pyx_t_9) != 0)) {
__pyx_t_2 = __pyx_t_1;
} else {
__pyx_t_2 = __pyx_t_9;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_t_2) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L146_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L143:;
+3401: kin = k
__pyx_v_kin = __pyx_v_k;
+3402: indin = -1
__pyx_v_indin = -1;
3403:
+3404: ephi_in0 = sinl1
__pyx_v_ephi_in0 = __pyx_v_sinl1;
+3405: ephi_in1 = -cosl1
__pyx_v_ephi_in1 = (-__pyx_v_cosl1);
+3406: if Cabs(ray_vdir[0] * ephi_in0 + ray_vdir[1] * ephi_in1) > eps_pln:
__pyx_t_4 = ((fabs((((__pyx_v_ray_vdir[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_vdir[1]) * __pyx_v_ephi_in1))) > __pyx_v_eps_pln) != 0);
if (__pyx_t_4) {
/* … */
}
3407: k = -(ray_orig[0] * ephi_in0 + ray_orig[1] * ephi_in1)\
+3408: /(ray_vdir[0] * ephi_in0 + ray_vdir[1] * ephi_in1)
__pyx_v_k = ((-(((__pyx_v_ray_orig[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_orig[1]) * __pyx_v_ephi_in1))) / (((__pyx_v_ray_vdir[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_vdir[1]) * __pyx_v_ephi_in1)));
+3409: if k >= 0:
__pyx_t_4 = ((__pyx_v_k >= 0.0) != 0);
if (__pyx_t_4) {
/* … */
}
+3410: sol0 = (ray_orig[0] + k * ray_vdir[0]) * cosl1 +\
__pyx_v_sol0 = ((((__pyx_v_ray_orig[0]) + (__pyx_v_k * (__pyx_v_ray_vdir[0]))) * __pyx_v_cosl1) + (((__pyx_v_ray_orig[1]) + (__pyx_v_k * (__pyx_v_ray_vdir[1]))) * __pyx_v_sinl1));
3411: (ray_orig[1] + k * ray_vdir[1]) * sinl1
+3412: sol1 = ray_orig[2] + k * ray_vdir[2]
__pyx_v_sol1 = ((__pyx_v_ray_orig[2]) + (__pyx_v_k * (__pyx_v_ray_vdir[2])));
3413: # Check if in ves_poly
+3414: inter_bbox = is_point_in_path(nvert, lpolyx, lpolyy, sol0, sol1)
__pyx_v_inter_bbox = __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(__pyx_v_nvert, __pyx_v_lpolyx, __pyx_v_lpolyy, __pyx_v_sol0, __pyx_v_sol1);
+3415: if inter_bbox:
__pyx_t_4 = (__pyx_v_inter_bbox != 0);
if (__pyx_t_4) {
/* … */
}
3416: # Check PIn (POut not possible for limited torus)
+3417: sca = ray_vdir[0]*ephi_in0 + ray_vdir[1]*ephi_in1
__pyx_v_sca = (((__pyx_v_ray_vdir[0]) * __pyx_v_ephi_in0) + ((__pyx_v_ray_vdir[1]) * __pyx_v_ephi_in1));
+3418: if sca<=0 and k<kout:
__pyx_t_7 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L152_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L152_bool_binop_done:;
if (__pyx_t_4) {
/* … */
goto __pyx_L151;
}
+3419: kout = k
__pyx_v_kout = __pyx_v_k;
+3420: done = 1
__pyx_v_done = 1;
+3421: indout = -2
__pyx_v_indout = -2;
+3422: elif sca>=0 and k<min(kin,kout):
__pyx_t_7 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L154_bool_binop_done;
}
__pyx_t_2 = __pyx_v_kout;
__pyx_t_1 = __pyx_v_kin;
if (((__pyx_t_2 < __pyx_t_1) != 0)) {
__pyx_t_9 = __pyx_t_2;
} else {
__pyx_t_9 = __pyx_t_1;
}
__pyx_t_7 = ((__pyx_v_k < __pyx_t_9) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L154_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L151:;
+3423: kin = k
__pyx_v_kin = __pyx_v_k;
+3424: indin = -2
__pyx_v_indin = -2;
3425: # == Analyzing if there was impact =========================================
+3426: if done==1:
__pyx_t_4 = ((__pyx_v_done == 1) != 0);
if (__pyx_t_4) {
/* … */
}
+3427: if is_in_struct :
__pyx_t_4 = (__pyx_v_is_in_struct != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L157;
}
+3428: kpout_loc[0] = kout
(__pyx_v_kpout_loc[0]) = __pyx_v_kout;
+3429: if indout==-1:
switch (__pyx_v_indout) {
case -1L:
/* … */
break;
case -2L:
+3430: vperpin[0] = -sinl0
(__pyx_v_vperpin[0]) = (-__pyx_v_sinl0);
+3431: vperpin[1] = cosl0
(__pyx_v_vperpin[1]) = __pyx_v_cosl0;
+3432: vperpin[2] = 0.
(__pyx_v_vperpin[2]) = 0.;
+3433: elif indout==-2:
break;
default:
+3434: vperpin[0] = sinl1
(__pyx_v_vperpin[0]) = __pyx_v_sinl1;
+3435: vperpin[1] = -cosl1
(__pyx_v_vperpin[1]) = (-__pyx_v_cosl1);
+3436: vperpin[2] = 0.
(__pyx_v_vperpin[2]) = 0.;
3437: else:
+3438: sout0 = ray_orig[0] + kout * ray_vdir[0]
__pyx_v_sout0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_kout * (__pyx_v_ray_vdir[0])));
+3439: sout1 = ray_orig[1] + kout * ray_vdir[1]
__pyx_v_sout1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_kout * (__pyx_v_ray_vdir[1])));
+3440: phi = Catan2(sout1, sout0)
__pyx_v_phi = atan2(__pyx_v_sout1, __pyx_v_sout0);
+3441: vperpin[0] = Ccos(phi) * normx[indout]
(__pyx_v_vperpin[0]) = (cos(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_indout]));
+3442: vperpin[1] = Csin(phi) * normx[indout]
(__pyx_v_vperpin[1]) = (sin(__pyx_v_phi) * (__pyx_v_normx[__pyx_v_indout]));
+3443: vperpin[2] = normy[indout]
(__pyx_v_vperpin[2]) = (__pyx_v_normy[__pyx_v_indout]);
break;
}
+3444: ind_loc[0] = indout
(__pyx_v_ind_loc[0]) = __pyx_v_indout;
+3445: if kin<kout:
__pyx_t_4 = ((__pyx_v_kin < __pyx_v_kout) != 0);
if (__pyx_t_4) {
/* … */
}
+3446: kpin_loc[0] = kin
(__pyx_v_kpin_loc[0]) = __pyx_v_kin;
+3447: elif kin < kout and kin < res_kin:
__pyx_t_7 = ((__pyx_v_kin < __pyx_v_kout) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L159_bool_binop_done;
}
__pyx_t_7 = ((__pyx_v_kin < __pyx_v_res_kin) != 0);
__pyx_t_4 = __pyx_t_7;
__pyx_L159_bool_binop_done:;
if (__pyx_t_4) {
/* … */
}
__pyx_L157:;
+3448: kpin_loc[0] = kin
(__pyx_v_kpin_loc[0]) = __pyx_v_kin;
+3449: if indin==-1:
switch (__pyx_v_indin) {
case -1L:
/* … */
break;
case -2L:
+3450: vperpin[0] = sinl0
(__pyx_v_vperpin[0]) = __pyx_v_sinl0;
+3451: vperpin[1] = -cosl0
(__pyx_v_vperpin[1]) = (-__pyx_v_cosl0);
+3452: vperpin[2] = 0.
(__pyx_v_vperpin[2]) = 0.;
+3453: elif indin==-2:
break;
default:
+3454: vperpin[0] = -sinl1
(__pyx_v_vperpin[0]) = (-__pyx_v_sinl1);
+3455: vperpin[1] = cosl1
(__pyx_v_vperpin[1]) = __pyx_v_cosl1;
+3456: vperpin[2] = 0.
(__pyx_v_vperpin[2]) = 0.;
3457: else:
+3458: sin0 = ray_orig[0] + kin * ray_vdir[0]
__pyx_v_sin0 = ((__pyx_v_ray_orig[0]) + (__pyx_v_kin * (__pyx_v_ray_vdir[0])));
+3459: sin1 = ray_orig[1] + kin * ray_vdir[1]
__pyx_v_sin1 = ((__pyx_v_ray_orig[1]) + (__pyx_v_kin * (__pyx_v_ray_vdir[1])));
+3460: phi = Catan2(sin1,sin0)
__pyx_v_phi = atan2(__pyx_v_sin1, __pyx_v_sin0);
+3461: vperpin[0] = -Ccos(phi) * normx[indin]
(__pyx_v_vperpin[0]) = ((-cos(__pyx_v_phi)) * (__pyx_v_normx[__pyx_v_indin]));
+3462: vperpin[1] = -Csin(phi) * normx[indin]
(__pyx_v_vperpin[1]) = ((-sin(__pyx_v_phi)) * (__pyx_v_normx[__pyx_v_indin]));
+3463: vperpin[2] = -normy[indin]
(__pyx_v_vperpin[2]) = (-(__pyx_v_normy[__pyx_v_indin]));
break;
}
+3464: ind_loc[0] = indin
(__pyx_v_ind_loc[0]) = __pyx_v_indin;
+3465: return (res_kin != kpin_loc[0]) or (res_kout != kpout_loc[0]
__pyx_t_7 = ((__pyx_v_res_kin != (__pyx_v_kpin_loc[0])) != 0);
if (!__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L161_bool_binop_done;
}
/* … */
__pyx_t_7 = ((__pyx_v_res_kout != (__pyx_v_kpout_loc[0])) != 0);
if (__pyx_t_7) {
} else {
__pyx_t_4 = __pyx_t_7;
goto __pyx_L161_bool_binop_done;
}
+3466: and is_in_struct)
__pyx_t_7 = (__pyx_v_is_in_struct != 0); __pyx_t_4 = __pyx_t_7; __pyx_L161_bool_binop_done:; __pyx_r = __pyx_t_4; goto __pyx_L0;
3467:
3468:
3469:
+3470: cdef inline void compute_inv_and_sign(const double[3] ray_vdir,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_compute_inv_and_sign(double *__pyx_v_ray_vdir, int *__pyx_v_sign, double *__pyx_v_inv_direction) {
CYTHON_UNUSED int __pyx_v_t0;
long __pyx_v_ii;
/* … */
/* function exit code */
__pyx_L0:;
}
3471: int[3] sign,
3472: double[3] inv_direction) nogil:
3473: """
3474: Computes the inverse direction and sign of each coordinate of a LOS.
3475: Params
3476: ======
3477: ray_vdir : (3) double array
3478: direction of the LOS
3479: sign : (3) int array <INOUT>
3480: for each coordinate of the direction, indicates if negative or not
3481: If sign[i] = 1, ray_vdir[i] < 0, else sign[i] = 0
3482: inv_direction : (3) double array
3483: Inverse on each axis of direction of LOS
3484: """
+3485: cdef int t0 = 1000000
__pyx_v_t0 = 0xF4240;
3486: # computing sign and direction
+3487: for ii in range(3):
for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
__pyx_v_ii = __pyx_t_1;
+3488: if ray_vdir[ii] * ray_vdir[ii] < _VSMALL:
__pyx_t_2 = ((((__pyx_v_ray_vdir[__pyx_v_ii]) * (__pyx_v_ray_vdir[__pyx_v_ii])) < __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L5;
}
+3489: inv_direction[ii] = 1. / _VSMALL
(__pyx_v_inv_direction[__pyx_v_ii]) = (1. / __pyx_v_4tofu_4geom_5_GG03__VSMALL);
3490: else:
+3491: inv_direction[ii] = 1. / ray_vdir[ii]
/*else*/ {
(__pyx_v_inv_direction[__pyx_v_ii]) = (1. / (__pyx_v_ray_vdir[__pyx_v_ii]));
}
__pyx_L5:;
+3492: if ray_vdir[ii] < 0.:
__pyx_t_2 = (((__pyx_v_ray_vdir[__pyx_v_ii]) < 0.) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L6;
}
+3493: sign[ii] = 1
(__pyx_v_sign[__pyx_v_ii]) = 1;
3494: else:
+3495: sign[ii] = 0
/*else*/ {
(__pyx_v_sign[__pyx_v_ii]) = 0;
}
__pyx_L6:;
}
+3496: return
goto __pyx_L0;
3497:
+3498: cdef inline bint inter_ray_aabb_box(const int[3] sign,
static CYTHON_INLINE int __pyx_f_4tofu_4geom_5_GG03_inter_ray_aabb_box(int *__pyx_v_sign, double *__pyx_v_inv_direction, double *__pyx_v_bounds, double *__pyx_v_ds, struct __pyx_opt_args_4tofu_4geom_5_GG03_inter_ray_aabb_box *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_inter_ray_aabb_box {
int __pyx_n;
int countin;
int debug_plot;
};
3499: const double[3] inv_direction,
3500: const double[6] bounds,
3501: const double[3] ds,
+3502: bint countin=False,
int __pyx_v_countin = ((int)0);
double __pyx_v_tmin;
double __pyx_v_tmax;
double __pyx_v_tymin;
double __pyx_v_tymax;
double __pyx_v_tzmin;
double __pyx_v_tzmax;
int __pyx_v_t0;
int __pyx_v_res;
int __pyx_r;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_countin = __pyx_optional_args->countin;
}
}
3503: bint debug_plot=False) nogil:
3504: """
3505: Computes intersection between a ray (LOS) and a axis aligned bounding
3506: box. It returns True if ray intersects box, else False.
3507: Params
3508: =====
3509: sign : (3) int array
3510: Sign of the direction of the ray.
3511: If sign[i] = 1, ray_vdir[i] < 0, else sign[i] = 0
3512: inv_direction : (3) double array
3513: Inverse on each axis of direction of LOS
3514: bounds : (6) double array
3515: [3d coords of lowerleftback point of bounding box,
3516: 3d coords of upperrightfront point of bounding box]
3517: ds : (3) double array
3518: [3d coords of origin of ray]
3519: Returns
3520: =======
3521: True if ray intersects bounding box, else False
3522: """
3523: cdef double tmin, tmax, tymin, tymax
3524: cdef double tzmin, tzmax
+3525: cdef int t0 = 1000000
__pyx_v_t0 = 0xF4240;
3526: cdef bint res
3527:
3528: # computing intersection
+3529: tmin = (bounds[sign[0]*3] - ds[0]) * inv_direction[0]
__pyx_v_tmin = (((__pyx_v_bounds[((__pyx_v_sign[0]) * 3)]) - (__pyx_v_ds[0])) * (__pyx_v_inv_direction[0]));
+3530: tmax = (bounds[(1-sign[0])*3] - ds[0]) * inv_direction[0]
__pyx_v_tmax = (((__pyx_v_bounds[((1 - (__pyx_v_sign[0])) * 3)]) - (__pyx_v_ds[0])) * (__pyx_v_inv_direction[0]));
+3531: tymin = (bounds[(sign[1])*3 + 1] - ds[1]) * inv_direction[1]
__pyx_v_tymin = (((__pyx_v_bounds[(((__pyx_v_sign[1]) * 3) + 1)]) - (__pyx_v_ds[1])) * (__pyx_v_inv_direction[1]));
+3532: tymax = (bounds[(1-sign[1])*3+1] - ds[1]) * inv_direction[1]
__pyx_v_tymax = (((__pyx_v_bounds[(((1 - (__pyx_v_sign[1])) * 3) + 1)]) - (__pyx_v_ds[1])) * (__pyx_v_inv_direction[1]));
+3533: if ( (tmin > tymax) or (tymin > tmax) ):
__pyx_t_2 = ((__pyx_v_tmin > __pyx_v_tymax) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_tymin > __pyx_v_tmax) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+3534: return 0
__pyx_r = 0;
goto __pyx_L0;
+3535: if (tymin > tmin):
__pyx_t_1 = ((__pyx_v_tymin > __pyx_v_tmin) != 0);
if (__pyx_t_1) {
/* … */
}
+3536: tmin = tymin
__pyx_v_tmin = __pyx_v_tymin;
+3537: if (tymax < tmax):
__pyx_t_1 = ((__pyx_v_tymax < __pyx_v_tmax) != 0);
if (__pyx_t_1) {
/* … */
}
+3538: tmax = tymax
__pyx_v_tmax = __pyx_v_tymax;
+3539: if not inv_direction[2] == 1./_VSMALL:
__pyx_t_1 = ((!(((__pyx_v_inv_direction[2]) == (1. / __pyx_v_4tofu_4geom_5_GG03__VSMALL)) != 0)) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L8;
}
+3540: tzmin = (bounds[(sign[2])*3+2] - ds[2]) * inv_direction[2]
__pyx_v_tzmin = (((__pyx_v_bounds[(((__pyx_v_sign[2]) * 3) + 2)]) - (__pyx_v_ds[2])) * (__pyx_v_inv_direction[2]));
+3541: tzmax = (bounds[(1-sign[2])*3+2] - ds[2]) * inv_direction[2]
__pyx_v_tzmax = (((__pyx_v_bounds[(((1 - (__pyx_v_sign[2])) * 3) + 2)]) - (__pyx_v_ds[2])) * (__pyx_v_inv_direction[2]));
3542: else:
+3543: tzmin = Cnan
/*else*/ {
__pyx_v_tzmin = NAN;
+3544: tzmax = Cnan
__pyx_v_tzmax = NAN; } __pyx_L8:;
+3545: if ( (tmin > tzmax) or (tzmin > tmax) ):
__pyx_t_2 = ((__pyx_v_tmin > __pyx_v_tzmax) != 0);
if (!__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_tzmin > __pyx_v_tmax) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L10_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+3546: return 0
__pyx_r = 0;
goto __pyx_L0;
+3547: if (tzmin > tmin):
__pyx_t_1 = ((__pyx_v_tzmin > __pyx_v_tmin) != 0);
if (__pyx_t_1) {
/* … */
}
+3548: tmin = tzmin
__pyx_v_tmin = __pyx_v_tzmin;
+3549: if (tzmax < tmax):
__pyx_t_1 = ((__pyx_v_tzmax < __pyx_v_tmax) != 0);
if (__pyx_t_1) {
/* … */
}
+3550: tmax = tzmax
__pyx_v_tmax = __pyx_v_tzmax;
+3551: if countin and (tmin < 0.) and (tmax < 0.):
__pyx_t_2 = (__pyx_v_countin != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L15_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_tmin < 0.) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L15_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_tmax < 0.) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L15_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+3552: return 0
__pyx_r = 0;
goto __pyx_L0;
+3553: elif not countin and tmin < 0:
__pyx_t_2 = ((!(__pyx_v_countin != 0)) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_tmin < 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L18_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
+3554: return 0
__pyx_r = 0;
goto __pyx_L0;
3555:
+3556: res = (tmin < t0) and (tmax > -t0)
__pyx_t_2 = ((__pyx_v_tmin < __pyx_v_t0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_tmax > (-__pyx_v_t0)) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L20_bool_binop_done:;
__pyx_v_res = __pyx_t_1;
+3557: return res
__pyx_r = __pyx_v_res; goto __pyx_L0;
3558:
3559:
+3560: cdef inline bint is_point_in_path(const int nvert,
static CYTHON_INLINE int __pyx_f_4tofu_4geom_5_GG03_is_point_in_path(int const __pyx_v_nvert, double const *__pyx_v_vertx, double const *__pyx_v_verty, double const __pyx_v_testx, double const __pyx_v_testy) {
int __pyx_v_i;
int __pyx_v_c;
int __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
3561: const double* vertx,
3562: const double* verty,
3563: const double testx,
3564: const double testy) nogil:
3565: """
3566: Computes if a point of coordiates (testx, testy) is in the polygon defined
3567: by nvert vertices of coordinates (vertx, verty)
3568: Params
3569: ======
3570: nvert : int
3571: number of vertices in polygon
3572: vertx : double array
3573: x-coordinates of polygon
3574: verty : double array
3575: y-coordinate of polygon
3576: testx : double
3577: x-coordinate of point to be tested if in or out of polygon
3578: testy : double
3579: y-coordinate of point to be tested if in or out of polygon
3580: Returns
3581: =======
3582: bool : True if point is in the polygon, else False
3583: """
3584: cdef int i
+3585: cdef bint c = 0
__pyx_v_c = 0;
+3586: for i in range(nvert):
__pyx_t_1 = __pyx_v_nvert;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_i = __pyx_t_3;
+3587: if ( ((verty[i]>testy) != (verty[i+1]>testy)) and
__pyx_t_5 = ((((__pyx_v_verty[__pyx_v_i]) > __pyx_v_testy) != ((__pyx_v_verty[(__pyx_v_i + 1)]) > __pyx_v_testy)) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_4 = __pyx_t_5;
goto __pyx_L6_bool_binop_done;
}
/* … */
if (__pyx_t_4) {
/* … */
}
}
+3588: (testx < (vertx[i+1]-vertx[i]) * (testy-verty[i]) \
__pyx_t_5 = ((__pyx_v_testx < (((((__pyx_v_vertx[(__pyx_v_i + 1)]) - (__pyx_v_vertx[__pyx_v_i])) * (__pyx_v_testy - (__pyx_v_verty[__pyx_v_i]))) / ((__pyx_v_verty[(__pyx_v_i + 1)]) - (__pyx_v_verty[__pyx_v_i]))) + (__pyx_v_vertx[__pyx_v_i]))) != 0);
__pyx_t_4 = __pyx_t_5;
__pyx_L6_bool_binop_done:;
3589: / (verty[i+1]-verty[i]) + vertx[i]) ):
+3590: c = not c
__pyx_v_c = (!(__pyx_v_c != 0));
+3591: return c
__pyx_r = __pyx_v_c; goto __pyx_L0;
3592:
3593:
+3594: cdef inline void comp_bbox_poly_tor(int nvert,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor(int __pyx_v_nvert, double *__pyx_v_vertr, double *__pyx_v_vertz, double *__pyx_v_bounds) {
int __pyx_v_ii;
double __pyx_v_rmax;
double __pyx_v_zmin;
double __pyx_v_zmax;
double __pyx_v_tmp_val;
/* … */
/* function exit code */
__pyx_L0:;
}
3595: double* vertr,
3596: double* vertz,
3597: double[6] bounds) nogil:
3598: """
3599: Computes bounding box of a toroidally continous structure defined by
3600: the vertices vert.
3601: Params
3602: =====
3603: nvert : inter
3604: Number of vertices in the poygon
3605: vert : double array
3606: Coordinates of the polygon defining the structure in the poloidal
3607: plane such that vert[0:3, ii] = (x_i, y_i) the coordinates of the
3608: i-th vertex
3609: bounds : (6) double array <INOUT>
3610: coordinates of the lowerleftback point and of the upperrightfront
3611: point of the bounding box of the structure toroidally continous on
3612: the tore.
3613: """
3614: cdef int ii
+3615: cdef double rmax=vertr[0], zmin=vertz[0], zmax=vertz[0]
__pyx_v_rmax = (__pyx_v_vertr[0]); __pyx_v_zmin = (__pyx_v_vertz[0]); __pyx_v_zmax = (__pyx_v_vertz[0]);
3616: cdef double tmp_val
+3617: for ii in range(1, nvert):
__pyx_t_1 = __pyx_v_nvert;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 1; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
+3618: tmp_val = vertr[ii]
__pyx_v_tmp_val = (__pyx_v_vertr[__pyx_v_ii]);
+3619: if tmp_val > rmax:
__pyx_t_4 = ((__pyx_v_tmp_val > __pyx_v_rmax) != 0);
if (__pyx_t_4) {
/* … */
}
+3620: rmax = tmp_val
__pyx_v_rmax = __pyx_v_tmp_val;
+3621: tmp_val = vertz[ii]
__pyx_v_tmp_val = (__pyx_v_vertz[__pyx_v_ii]);
+3622: if tmp_val > zmax:
__pyx_t_4 = ((__pyx_v_tmp_val > __pyx_v_zmax) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L6;
}
+3623: zmax = tmp_val
__pyx_v_zmax = __pyx_v_tmp_val;
+3624: elif tmp_val < zmin:
__pyx_t_4 = ((__pyx_v_tmp_val < __pyx_v_zmin) != 0);
if (__pyx_t_4) {
/* … */
}
__pyx_L6:;
}
+3625: zmin = tmp_val
__pyx_v_zmin = __pyx_v_tmp_val;
+3626: bounds[0] = -rmax
(__pyx_v_bounds[0]) = (-__pyx_v_rmax);
+3627: bounds[1] = -rmax
(__pyx_v_bounds[1]) = (-__pyx_v_rmax);
+3628: bounds[2] = zmin
(__pyx_v_bounds[2]) = __pyx_v_zmin;
+3629: bounds[3] = rmax
(__pyx_v_bounds[3]) = __pyx_v_rmax;
+3630: bounds[4] = rmax
(__pyx_v_bounds[4]) = __pyx_v_rmax;
+3631: bounds[5] = zmax
(__pyx_v_bounds[5]) = __pyx_v_zmax;
+3632: return
goto __pyx_L0;
3633:
3634:
+3635: cdef inline void comp_bbox_poly_tor_lim(int nvert,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor_lim(int __pyx_v_nvert, double *__pyx_v_vertr, double *__pyx_v_vertz, double *__pyx_v_bounds, double __pyx_v_lmin, double __pyx_v_lmax) {
int __pyx_v_ii;
double __pyx_v_toto;
double __pyx_v_xmin;
double __pyx_v_xmax;
double __pyx_v_ymin;
double __pyx_v_ymax;
double __pyx_v_zmin;
double __pyx_v_zmax;
double __pyx_v_cos_min;
double __pyx_v_sin_min;
double __pyx_v_cos_max;
double __pyx_v_sin_max;
double __pyx_v_half_pi;
double __pyx_v_temp[3];
double __pyx_v_bounds_min[6];
/* … */
/* function exit code */
__pyx_L0:;
}
3636: double* vertr,
3637: double* vertz,
3638: double[6] bounds,
3639: double lmin, double lmax) nogil:
3640: """
3641: Computes bounding box of a toroidally limited structure defined by
3642: the vertices vert, and limited to the angles (lmin, lmax)
3643: Params
3644: =====
3645: nvert : inter
3646: Number of vertices in the poygon
3647: vert : double array
3648: Coordinates of the polygon defining the structure in the poloidal plane
3649: such that vert[0:3, ii] = (x_i, y_i) the coordinates of the i-th vertex
3650: bounds : (6) double array <INOUT>
3651: coordinates of the lowerleftback point and of the upperrightfront point
3652: of the bounding box of the structure toroidally limited on the tore.
3653: lmin : double
3654: minimum toroidal angle where the structure lays.
3655: lmax : double
3656: maximum toroidal angle where the structure lays.
3657: """
3658: cdef int ii
+3659: cdef double toto=100000.
__pyx_v_toto = 100000.;
+3660: cdef double xmin=toto, xmax=-toto
__pyx_v_xmin = __pyx_v_toto; __pyx_v_xmax = (-__pyx_v_toto);
+3661: cdef double ymin=toto, ymax=-toto
__pyx_v_ymin = __pyx_v_toto; __pyx_v_ymax = (-__pyx_v_toto);
+3662: cdef double zmin=toto, zmax=-toto
__pyx_v_zmin = __pyx_v_toto; __pyx_v_zmax = (-__pyx_v_toto);
3663: cdef double cos_min
3664: cdef double sin_min
3665: cdef double cos_max
3666: cdef double sin_max
3667: cdef double cos_mid
3668: cdef double sin_mid
+3669: cdef double half_pi = 0.5 * Cpi
__pyx_v_half_pi = (0.5 * M_PI);
3670: cdef double[3] temp
3671: cdef double[6] bounds_min
+3672: cos_min = Ccos(lmin)
__pyx_v_cos_min = cos(__pyx_v_lmin);
+3673: sin_min = Csin(lmin)
__pyx_v_sin_min = sin(__pyx_v_lmin);
+3674: cos_max = Ccos(lmax)
__pyx_v_cos_max = cos(__pyx_v_lmax);
+3675: sin_max = Csin(lmax)
__pyx_v_sin_max = sin(__pyx_v_lmax);
+3676: if (lmin >= 0.) and (lmax >= 0.):
__pyx_t_2 = ((__pyx_v_lmin >= 0.) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_lmax >= 0.) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+3677: if lmax > half_pi and lmin < half_pi:
__pyx_t_2 = ((__pyx_v_lmax > __pyx_v_half_pi) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_lmin < __pyx_v_half_pi) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L7_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
+3678: comp_bbox_poly_tor(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds_min[0])));
3679: vertr,
3680: vertz,
3681: &bounds_min[0])
+3682: if ymax < bounds_min[4]:
__pyx_t_1 = ((__pyx_v_ymax < (__pyx_v_bounds_min[4])) != 0);
if (__pyx_t_1) {
/* … */
}
+3683: ymax = bounds_min[4]
__pyx_v_ymax = (__pyx_v_bounds_min[4]);
+3684: elif lmax < half_pi and lmin > half_pi:
__pyx_t_2 = ((__pyx_v_lmax < __pyx_v_half_pi) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_lmin > __pyx_v_half_pi) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L10_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L6:;
+3685: comp_bbox_poly_tor(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds_min[0])));
3686: vertr,
3687: vertz,
3688: &bounds_min[0])
+3689: if ymin > bounds_min[1]:
__pyx_t_1 = ((__pyx_v_ymin > (__pyx_v_bounds_min[1])) != 0);
if (__pyx_t_1) {
/* … */
}
+3690: ymin = bounds_min[1]
__pyx_v_ymin = (__pyx_v_bounds_min[1]);
+3691: elif (lmin <= 0 and lmax <= 0):
__pyx_t_2 = ((__pyx_v_lmin <= 0.0) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_lmax <= 0.0) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L13_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+3692: if lmax < -half_pi and lmin > -half_pi:
__pyx_t_2 = ((__pyx_v_lmax < (-__pyx_v_half_pi)) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_lmin > (-__pyx_v_half_pi)) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L16_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+3693: comp_bbox_poly_tor(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds_min[0])));
3694: vertr,
3695: vertz,
3696: &bounds_min[0])
+3697: if ymin > bounds_min[1]:
__pyx_t_1 = ((__pyx_v_ymin > (__pyx_v_bounds_min[1])) != 0);
if (__pyx_t_1) {
/* … */
}
+3698: ymin = bounds_min[1]
__pyx_v_ymin = (__pyx_v_bounds_min[1]);
3699: # cos_mid = Ccos(-half_pi)
3700: # sin_mid = Csin(-half_pi)
+3701: elif lmax > -half_pi and lmin < -half_pi:
__pyx_t_2 = ((__pyx_v_lmax > (-__pyx_v_half_pi)) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L19_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_lmin < (-__pyx_v_half_pi)) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L19_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L15:;
+3702: comp_bbox_poly_tor(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds_min[0])));
3703: vertr,
3704: vertz,
3705: &bounds_min[0])
+3706: if ymax < bounds_min[4]:
__pyx_t_1 = ((__pyx_v_ymax < (__pyx_v_bounds_min[4])) != 0);
if (__pyx_t_1) {
/* … */
}
+3707: ymax = bounds_min[4]
__pyx_v_ymax = (__pyx_v_bounds_min[4]);
3708: # cos_mid = Ccos(half_pi)
3709: # sin_mid = Csin(half_pi)
+3710: elif (Cabs(Cabs(lmin) - Cpi) > _VSMALL and Cabs(Cabs(lmax) - Cpi) > _VSMALL):
__pyx_t_2 = ((fabs((fabs(__pyx_v_lmin) - M_PI)) > __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L22_bool_binop_done;
}
__pyx_t_2 = ((fabs((fabs(__pyx_v_lmax) - M_PI)) > __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L22_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
__pyx_L3:;
+3711: if lmin >= 0 :
__pyx_t_1 = ((__pyx_v_lmin >= 0.0) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L24;
}
3712: # lmin and lmax of opposite signs, so lmax < 0.
3713: # We divide and conquer:
+3714: comp_bbox_poly_tor_lim(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor_lim(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds[0])), __pyx_v_lmin, M_PI);
3715: vertr,
3716: vertz,
3717: &bounds[0],
3718: lmin, Cpi)
+3719: comp_bbox_poly_tor_lim(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor_lim(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds_min[0])), (-M_PI), __pyx_v_lmax);
3720: vertr,
3721: vertz,
3722: &bounds_min[0],
3723: -Cpi, lmax)
3724: else:
3725: # lmin and lmax of opposite signs, so lmax <= 0.
3726: # We divide and conquer:
+3727: comp_bbox_poly_tor_lim(nvert,
/*else*/ {
/* … */
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor_lim(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds[0])), __pyx_v_lmin, -0.0);
3728: vertr,
3729: vertz,
3730: &bounds[0],
3731: lmin, -0.0)
+3732: comp_bbox_poly_tor_lim(nvert,
__pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly_tor_lim(__pyx_v_nvert, __pyx_v_vertr, __pyx_v_vertz, (&(__pyx_v_bounds_min[0])), 0.0, __pyx_v_lmax);
}
__pyx_L24:;
3733: vertr,
3734: vertz,
3735: &bounds_min[0],
3736: 0.0, lmax)
3737: # we compute the extremes of the two boxes:
+3738: for ii in range(3):
for (__pyx_t_3 = 0; __pyx_t_3 < 3; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
+3739: if bounds[ii] > bounds_min[ii]:
__pyx_t_1 = (((__pyx_v_bounds[__pyx_v_ii]) > (__pyx_v_bounds_min[__pyx_v_ii])) != 0);
if (__pyx_t_1) {
/* … */
}
}
+3740: bounds[ii] = bounds_min[ii]
(__pyx_v_bounds[__pyx_v_ii]) = (__pyx_v_bounds_min[__pyx_v_ii]);
+3741: for ii in range(3, 6):
for (__pyx_t_3 = 3; __pyx_t_3 < 6; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
+3742: if bounds[ii] < bounds_min[ii]:
__pyx_t_1 = (((__pyx_v_bounds[__pyx_v_ii]) < (__pyx_v_bounds_min[__pyx_v_ii])) != 0);
if (__pyx_t_1) {
/* … */
}
}
+3743: bounds[ii] = bounds_min[ii]
(__pyx_v_bounds[__pyx_v_ii]) = (__pyx_v_bounds_min[__pyx_v_ii]);
+3744: return
goto __pyx_L0;
3745:
+3746: for ii in range(nvert):
__pyx_t_3 = __pyx_v_nvert;
__pyx_t_4 = __pyx_t_3;
for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
__pyx_v_ii = __pyx_t_5;
+3747: temp[0] = vertr[ii]
(__pyx_v_temp[0]) = (__pyx_v_vertr[__pyx_v_ii]);
+3748: temp[1] = vertz[ii]
(__pyx_v_temp[1]) = (__pyx_v_vertz[__pyx_v_ii]);
+3749: coordshift_simple1d(temp, in_is_cartesian=False, CrossRef=1.,
__pyx_t_6.__pyx_n = 4;
__pyx_t_6.in_is_cartesian = 0;
__pyx_t_6.CrossRef = 1.;
__pyx_t_6.cos_phi = __pyx_v_cos_min;
__pyx_t_6.sin_phi = __pyx_v_sin_min;
__pyx_f_4tofu_4geom_5_GG03_coordshift_simple1d(__pyx_v_temp, &__pyx_t_6);
3750: cos_phi=cos_min, sin_phi=sin_min)
3751: # initialization:
+3752: if xmin > temp[0]:
__pyx_t_1 = ((__pyx_v_xmin > (__pyx_v_temp[0])) != 0);
if (__pyx_t_1) {
/* … */
}
+3753: xmin = temp[0]
__pyx_v_xmin = (__pyx_v_temp[0]);
+3754: if xmax < temp[0]:
__pyx_t_1 = ((__pyx_v_xmax < (__pyx_v_temp[0])) != 0);
if (__pyx_t_1) {
/* … */
}
+3755: xmax = temp[0]
__pyx_v_xmax = (__pyx_v_temp[0]);
+3756: if ymin > temp[1]:
__pyx_t_1 = ((__pyx_v_ymin > (__pyx_v_temp[1])) != 0);
if (__pyx_t_1) {
/* … */
}
+3757: ymin = temp[1]
__pyx_v_ymin = (__pyx_v_temp[1]);
+3758: if ymax < temp[1]:
__pyx_t_1 = ((__pyx_v_ymax < (__pyx_v_temp[1])) != 0);
if (__pyx_t_1) {
/* … */
}
+3759: ymax = temp[1]
__pyx_v_ymax = (__pyx_v_temp[1]);
+3760: if zmin > temp[2]:
__pyx_t_1 = ((__pyx_v_zmin > (__pyx_v_temp[2])) != 0);
if (__pyx_t_1) {
/* … */
}
+3761: zmin = temp[2]
__pyx_v_zmin = (__pyx_v_temp[2]);
+3762: if zmax < temp[2]:
__pyx_t_1 = ((__pyx_v_zmax < (__pyx_v_temp[2])) != 0);
if (__pyx_t_1) {
/* … */
}
+3763: zmax = temp[2]
__pyx_v_zmax = (__pyx_v_temp[2]);
3764: # .....
+3765: temp[0] = vertr[ii]
(__pyx_v_temp[0]) = (__pyx_v_vertr[__pyx_v_ii]);
+3766: temp[1] = vertz[ii]
(__pyx_v_temp[1]) = (__pyx_v_vertz[__pyx_v_ii]);
+3767: coordshift_simple1d(temp, in_is_cartesian=False, CrossRef=1.,
__pyx_t_6.__pyx_n = 4;
__pyx_t_6.in_is_cartesian = 0;
__pyx_t_6.CrossRef = 1.;
__pyx_t_6.cos_phi = __pyx_v_cos_max;
__pyx_t_6.sin_phi = __pyx_v_sin_max;
__pyx_f_4tofu_4geom_5_GG03_coordshift_simple1d(__pyx_v_temp, &__pyx_t_6);
3768: cos_phi=cos_max, sin_phi=sin_max)
+3769: if xmin > temp[0]:
__pyx_t_1 = ((__pyx_v_xmin > (__pyx_v_temp[0])) != 0);
if (__pyx_t_1) {
/* … */
}
+3770: xmin = temp[0]
__pyx_v_xmin = (__pyx_v_temp[0]);
+3771: if xmax < temp[0]:
__pyx_t_1 = ((__pyx_v_xmax < (__pyx_v_temp[0])) != 0);
if (__pyx_t_1) {
/* … */
}
+3772: xmax = temp[0]
__pyx_v_xmax = (__pyx_v_temp[0]);
+3773: if ymin > temp[1]:
__pyx_t_1 = ((__pyx_v_ymin > (__pyx_v_temp[1])) != 0);
if (__pyx_t_1) {
/* … */
}
+3774: ymin = temp[1]
__pyx_v_ymin = (__pyx_v_temp[1]);
+3775: if ymax < temp[1]:
__pyx_t_1 = ((__pyx_v_ymax < (__pyx_v_temp[1])) != 0);
if (__pyx_t_1) {
/* … */
}
+3776: ymax = temp[1]
__pyx_v_ymax = (__pyx_v_temp[1]);
+3777: if zmin > temp[2]:
__pyx_t_1 = ((__pyx_v_zmin > (__pyx_v_temp[2])) != 0);
if (__pyx_t_1) {
/* … */
}
+3778: zmin = temp[2]
__pyx_v_zmin = (__pyx_v_temp[2]);
+3779: if zmax < temp[2]:
__pyx_t_1 = ((__pyx_v_zmax < (__pyx_v_temp[2])) != 0);
if (__pyx_t_1) {
/* … */
}
}
+3780: zmax = temp[2]
__pyx_v_zmax = (__pyx_v_temp[2]);
+3781: bounds[0] = xmin
(__pyx_v_bounds[0]) = __pyx_v_xmin;
+3782: bounds[1] = ymin
(__pyx_v_bounds[1]) = __pyx_v_ymin;
+3783: bounds[2] = zmin
(__pyx_v_bounds[2]) = __pyx_v_zmin;
+3784: bounds[3] = xmax
(__pyx_v_bounds[3]) = __pyx_v_xmax;
+3785: bounds[4] = ymax
(__pyx_v_bounds[4]) = __pyx_v_ymax;
+3786: bounds[5] = zmax
(__pyx_v_bounds[5]) = __pyx_v_zmax;
+3787: return
goto __pyx_L0;
3788:
3789:
+3790: cdef inline void comp_bbox_poly3d(int nvert,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_comp_bbox_poly3d(int __pyx_v_nvert, double *__pyx_v_vertx, double *__pyx_v_verty, double *__pyx_v_vertz, double *__pyx_v_bounds) {
CYTHON_UNUSED int __pyx_v_ii;
double __pyx_v_xmax;
double __pyx_v_xmin;
double __pyx_v_ymax;
double __pyx_v_ymin;
double __pyx_v_zmax;
double __pyx_v_zmin;
double __pyx_v_tmp_val;
/* … */
/* function exit code */
__pyx_L0:;
}
3791: double* vertx,
3792: double* verty,
3793: double* vertz,
3794: double[6] bounds) nogil:
3795: """
3796: Computes bounding box of a 3d polygon
3797: Params
3798: =====
3799: nvert : inter
3800: Number of vertices in the poygon
3801: vert : double array
3802: Coordinates of the polygon defining the structure in the poloidal plane
3803: such that vert[0:3, ii] = (x_i, y_i, z_i) the coordinates of the i-th
3804: vertex
3805: bounds : (6) double array <INOUT>
3806: coordinates of the lowerleftback point and of the upperrightfront point
3807: of the bounding box of the polygon
3808: """
3809: cdef int ii
+3810: cdef double xmax=vertx[0], xmin=vertx[0]
__pyx_v_xmax = (__pyx_v_vertx[0]); __pyx_v_xmin = (__pyx_v_vertx[0]);
+3811: cdef double ymax=verty[0], ymin=verty[0]
__pyx_v_ymax = (__pyx_v_verty[0]); __pyx_v_ymin = (__pyx_v_verty[0]);
+3812: cdef double zmax=vertz[0], zmin=vertz[0]
__pyx_v_zmax = (__pyx_v_vertz[0]); __pyx_v_zmin = (__pyx_v_vertz[0]);
3813: cdef double tmp_val
+3814: for ii in range(1, nvert):
__pyx_t_1 = __pyx_v_nvert;
__pyx_t_2 = __pyx_t_1;
for (__pyx_t_3 = 1; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
__pyx_v_ii = __pyx_t_3;
3815: # x....
+3816: tmp_val = vertx[0]
__pyx_v_tmp_val = (__pyx_v_vertx[0]);
+3817: if tmp_val > xmax:
__pyx_t_4 = ((__pyx_v_tmp_val > __pyx_v_xmax) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L5;
}
+3818: xmax = tmp_val
__pyx_v_xmax = __pyx_v_tmp_val;
+3819: elif tmp_val < xmin :
__pyx_t_4 = ((__pyx_v_tmp_val < __pyx_v_xmin) != 0);
if (__pyx_t_4) {
/* … */
}
__pyx_L5:;
+3820: xmin = tmp_val
__pyx_v_xmin = __pyx_v_tmp_val;
3821: # y....
+3822: tmp_val = verty[0]
__pyx_v_tmp_val = (__pyx_v_verty[0]);
+3823: if tmp_val > ymax:
__pyx_t_4 = ((__pyx_v_tmp_val > __pyx_v_ymax) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L6;
}
+3824: ymax = tmp_val
__pyx_v_ymax = __pyx_v_tmp_val;
+3825: elif tmp_val < ymin :
__pyx_t_4 = ((__pyx_v_tmp_val < __pyx_v_ymin) != 0);
if (__pyx_t_4) {
/* … */
}
__pyx_L6:;
+3826: ymin = tmp_val
__pyx_v_ymin = __pyx_v_tmp_val;
3827: # z....
+3828: tmp_val = vertz[0]
__pyx_v_tmp_val = (__pyx_v_vertz[0]);
+3829: if tmp_val > zmax:
__pyx_t_4 = ((__pyx_v_tmp_val > __pyx_v_zmax) != 0);
if (__pyx_t_4) {
/* … */
goto __pyx_L7;
}
+3830: zmax = tmp_val
__pyx_v_zmax = __pyx_v_tmp_val;
+3831: elif tmp_val < zmin :
__pyx_t_4 = ((__pyx_v_tmp_val < __pyx_v_zmin) != 0);
if (__pyx_t_4) {
/* … */
}
__pyx_L7:;
}
+3832: zmin = tmp_val
__pyx_v_zmin = __pyx_v_tmp_val;
+3833: bounds[0] = xmin
(__pyx_v_bounds[0]) = __pyx_v_xmin;
+3834: bounds[1] = ymin
(__pyx_v_bounds[1]) = __pyx_v_ymin;
+3835: bounds[2] = zmin
(__pyx_v_bounds[2]) = __pyx_v_zmin;
+3836: bounds[3] = xmax
(__pyx_v_bounds[3]) = __pyx_v_xmax;
+3837: bounds[4] = ymax
(__pyx_v_bounds[4]) = __pyx_v_ymax;
+3838: bounds[5] = zmax
(__pyx_v_bounds[5]) = __pyx_v_zmax;
+3839: return
goto __pyx_L0;
3840:
3841:
+3842: cdef inline void coordshift_simple1d(double[3] pts, bint in_is_cartesian=True,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_coordshift_simple1d(double *__pyx_v_pts, struct __pyx_opt_args_4tofu_4geom_5_GG03_coordshift_simple1d *__pyx_optional_args) {
int __pyx_v_in_is_cartesian = ((int)1);
double __pyx_v_CrossRef = ((double)0.);
double __pyx_v_cos_phi = ((double)0.);
double __pyx_v_sin_phi = ((double)0.);
double __pyx_v_x;
double __pyx_v_y;
double __pyx_v_z;
double __pyx_v_r;
double __pyx_v_p;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_in_is_cartesian = __pyx_optional_args->in_is_cartesian;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_CrossRef = __pyx_optional_args->CrossRef;
if (__pyx_optional_args->__pyx_n > 2) {
__pyx_v_cos_phi = __pyx_optional_args->cos_phi;
if (__pyx_optional_args->__pyx_n > 3) {
__pyx_v_sin_phi = __pyx_optional_args->sin_phi;
}
}
}
}
}
/* … */
/* function exit code */
__pyx_L0:;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_coordshift_simple1d {
int __pyx_n;
int in_is_cartesian;
double CrossRef;
double cos_phi;
double sin_phi;
};
3843: double CrossRef=0., double cos_phi=0.,
3844: double sin_phi=0.) nogil:
3845: """
3846: Similar to coordshift but only pas from 3D cartesian to 3D toroidal
3847: coordinates or vice-versa.
3848: """
3849: cdef double x, y, z
3850: cdef double r, p
+3851: if in_is_cartesian:
__pyx_t_1 = (__pyx_v_in_is_cartesian != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+3852: if CrossRef==0.:
__pyx_t_1 = ((__pyx_v_CrossRef == 0.) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L4;
}
+3853: x = pts[0]
__pyx_v_x = (__pyx_v_pts[0]);
+3854: y = pts[1]
__pyx_v_y = (__pyx_v_pts[1]);
+3855: z = pts[2]
__pyx_v_z = (__pyx_v_pts[2]);
+3856: pts[0] = Csqrt(x*x+y*y)
(__pyx_v_pts[0]) = sqrt(((__pyx_v_x * __pyx_v_x) + (__pyx_v_y * __pyx_v_y)));
+3857: pts[1] = z
(__pyx_v_pts[1]) = __pyx_v_z;
+3858: pts[2] = Catan2(y,x)
(__pyx_v_pts[2]) = atan2(__pyx_v_y, __pyx_v_x);
3859: else:
+3860: x = pts[0]
/*else*/ {
__pyx_v_x = (__pyx_v_pts[0]);
+3861: y = pts[1]
__pyx_v_y = (__pyx_v_pts[1]);
+3862: z = pts[2]
__pyx_v_z = (__pyx_v_pts[2]);
+3863: pts[0] = Csqrt(x*x+y*y)
(__pyx_v_pts[0]) = sqrt(((__pyx_v_x * __pyx_v_x) + (__pyx_v_y * __pyx_v_y)));
+3864: pts[1] = z
(__pyx_v_pts[1]) = __pyx_v_z;
+3865: pts[2] = CrossRef
(__pyx_v_pts[2]) = __pyx_v_CrossRef;
}
__pyx_L4:;
3866: else:
+3867: if CrossRef==0.:
/*else*/ {
__pyx_t_1 = ((__pyx_v_CrossRef == 0.) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L5;
}
+3868: r = pts[0]
__pyx_v_r = (__pyx_v_pts[0]);
+3869: z = pts[1]
__pyx_v_z = (__pyx_v_pts[1]);
+3870: p = pts[2]
__pyx_v_p = (__pyx_v_pts[2]);
+3871: pts[0] = r*Ccos(p)
(__pyx_v_pts[0]) = (__pyx_v_r * cos(__pyx_v_p));
+3872: pts[1] = r*Csin(p)
(__pyx_v_pts[1]) = (__pyx_v_r * sin(__pyx_v_p));
+3873: pts[2] = z
(__pyx_v_pts[2]) = __pyx_v_z;
3874: else:
+3875: r = pts[0]
/*else*/ {
__pyx_v_r = (__pyx_v_pts[0]);
+3876: z = pts[1]
__pyx_v_z = (__pyx_v_pts[1]);
+3877: pts[0] = r*cos_phi
(__pyx_v_pts[0]) = (__pyx_v_r * __pyx_v_cos_phi);
+3878: pts[1] = r*sin_phi
(__pyx_v_pts[1]) = (__pyx_v_r * __pyx_v_sin_phi);
+3879: pts[2] = z
(__pyx_v_pts[2]) = __pyx_v_z;
}
__pyx_L5:;
}
__pyx_L3:;
+3880: return
goto __pyx_L0;
3881:
3882:
3883:
+3884: def LOS_isVis_PtFromPts_VesStruct(double pt0, double pt1, double pt2,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_49LOS_isVis_PtFromPts_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_48LOS_isVis_PtFromPts_VesStruct[] = " Return an array of bool indices indicating whether each point in pts is\n visible from Pt considering vignetting\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_49LOS_isVis_PtFromPts_VesStruct = {"LOS_isVis_PtFromPts_VesStruct", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_49LOS_isVis_PtFromPts_VesStruct, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_48LOS_isVis_PtFromPts_VesStruct};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_49LOS_isVis_PtFromPts_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_pt0;
double __pyx_v_pt1;
double __pyx_v_pt2;
PyArrayObject *__pyx_v_k = 0;
PyArrayObject *__pyx_v_pts = 0;
PyArrayObject *__pyx_v_VPoly = 0;
PyArrayObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_Lim = 0;
PyObject *__pyx_v_LSPoly = 0;
PyObject *__pyx_v_LSLim = 0;
PyObject *__pyx_v_LSVIn = 0;
PyObject *__pyx_v_RMin = 0;
PyObject *__pyx_v_Forbid = 0;
PyObject *__pyx_v_EpsUz = 0;
PyObject *__pyx_v_EpsVz = 0;
PyObject *__pyx_v_EpsA = 0;
PyObject *__pyx_v_EpsB = 0;
PyObject *__pyx_v_EpsPlane = 0;
PyObject *__pyx_v_VType = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_isVis_PtFromPts_VesStruct (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pt0,&__pyx_n_s_pt1,&__pyx_n_s_pt2,&__pyx_n_s_k,&__pyx_n_s_pts,&__pyx_n_s_VPoly,&__pyx_n_s_VIn,&__pyx_n_s_Lim,&__pyx_n_s_LSPoly,&__pyx_n_s_LSLim,&__pyx_n_s_LSVIn,&__pyx_n_s_RMin,&__pyx_n_s_Forbid,&__pyx_n_s_EpsUz,&__pyx_n_s_EpsVz,&__pyx_n_s_EpsA,&__pyx_n_s_EpsB,&__pyx_n_s_EpsPlane,&__pyx_n_s_VType,&__pyx_n_s_Test,0};
PyObject* values[20] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_48LOS_isVis_PtFromPts_VesStruct(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_pt0, double __pyx_v_pt1, double __pyx_v_pt2, PyArrayObject *__pyx_v_k, PyArrayObject *__pyx_v_pts, PyArrayObject *__pyx_v_VPoly, PyArrayObject *__pyx_v_VIn, PyObject *__pyx_v_Lim, PyObject *__pyx_v_LSPoly, PyObject *__pyx_v_LSLim, PyObject *__pyx_v_LSVIn, PyObject *__pyx_v_RMin, PyObject *__pyx_v_Forbid, PyObject *__pyx_v_EpsUz, PyObject *__pyx_v_EpsVz, PyObject *__pyx_v_EpsA, PyObject *__pyx_v_EpsB, PyObject *__pyx_v_EpsPlane, PyObject *__pyx_v_VType, PyObject *__pyx_v_Test) {
PyObject *__pyx_v_C0 = NULL;
PyObject *__pyx_v_msg = NULL;
PyObject *__pyx_v_C1 = NULL;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_npts;
PyArrayObject *__pyx_v_Ds = 0;
PyArrayObject *__pyx_v_dus = 0;
PyObject *__pyx_v_POut = NULL;
PyObject *__pyx_v_kPOut = NULL;
PyObject *__pyx_v_lslim = NULL;
PyObject *__pyx_v_pIn = NULL;
PyObject *__pyx_v_kpin = NULL;
PyObject *__pyx_v_indNoNan = NULL;
PyObject *__pyx_v_indout = NULL;
PyObject *__pyx_v_ind = NULL;
PyObject *__pyx_v_indok = NULL;
PyObject *__pyx_v_pp = NULL;
PyObject *__pyx_v_ee = NULL;
PyObject *__pyx_v_ll = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Ds;
__Pyx_Buffer __pyx_pybuffer_Ds;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VIn;
__Pyx_Buffer __pyx_pybuffer_VIn;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPoly;
__Pyx_Buffer __pyx_pybuffer_VPoly;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dus;
__Pyx_Buffer __pyx_pybuffer_dus;
__Pyx_LocalBuf_ND __pyx_pybuffernd_k;
__Pyx_Buffer __pyx_pybuffer_k;
__Pyx_LocalBuf_ND __pyx_pybuffernd_pts;
__Pyx_Buffer __pyx_pybuffer_pts;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_isVis_PtFromPts_VesStruct", 0);
__Pyx_INCREF(__pyx_v_RMin);
__pyx_pybuffer_Ds.pybuffer.buf = NULL;
__pyx_pybuffer_Ds.refcount = 0;
__pyx_pybuffernd_Ds.data = NULL;
__pyx_pybuffernd_Ds.rcbuffer = &__pyx_pybuffer_Ds;
__pyx_pybuffer_dus.pybuffer.buf = NULL;
__pyx_pybuffer_dus.refcount = 0;
__pyx_pybuffernd_dus.data = NULL;
__pyx_pybuffernd_dus.rcbuffer = &__pyx_pybuffer_dus;
__pyx_pybuffer_k.pybuffer.buf = NULL;
__pyx_pybuffer_k.refcount = 0;
__pyx_pybuffernd_k.data = NULL;
__pyx_pybuffernd_k.rcbuffer = &__pyx_pybuffer_k;
__pyx_pybuffer_pts.pybuffer.buf = NULL;
__pyx_pybuffer_pts.refcount = 0;
__pyx_pybuffernd_pts.data = NULL;
__pyx_pybuffernd_pts.rcbuffer = &__pyx_pybuffer_pts;
__pyx_pybuffer_VPoly.pybuffer.buf = NULL;
__pyx_pybuffer_VPoly.refcount = 0;
__pyx_pybuffernd_VPoly.data = NULL;
__pyx_pybuffernd_VPoly.rcbuffer = &__pyx_pybuffer_VPoly;
__pyx_pybuffer_VIn.pybuffer.buf = NULL;
__pyx_pybuffer_VIn.refcount = 0;
__pyx_pybuffernd_VIn.data = NULL;
__pyx_pybuffernd_VIn.rcbuffer = &__pyx_pybuffer_VIn;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_k.rcbuffer->pybuffer, (PyObject*)__pyx_v_k, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 3884, __pyx_L1_error)
}
__pyx_pybuffernd_k.diminfo[0].strides = __pyx_pybuffernd_k.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_k.diminfo[0].shape = __pyx_pybuffernd_k.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 3884, __pyx_L1_error)
}
__pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPoly.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPoly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 3884, __pyx_L1_error)
}
__pyx_pybuffernd_VPoly.diminfo[0].strides = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPoly.diminfo[0].shape = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPoly.diminfo[1].strides = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPoly.diminfo[1].shape = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VIn.rcbuffer->pybuffer, (PyObject*)__pyx_v_VIn, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 3884, __pyx_L1_error)
}
__pyx_pybuffernd_VIn.diminfo[0].strides = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VIn.diminfo[0].shape = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VIn.diminfo[1].strides = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VIn.diminfo[1].shape = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.shape[1];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_18);
__PYX_XDEC_MEMVIEW(&__pyx_t_19, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_20, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_21, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ds.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VIn.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPoly.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dus.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_k.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.LOS_isVis_PtFromPts_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ds.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VIn.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPoly.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dus.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_k.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_C0);
__Pyx_XDECREF(__pyx_v_msg);
__Pyx_XDECREF(__pyx_v_C1);
__Pyx_XDECREF((PyObject *)__pyx_v_Ds);
__Pyx_XDECREF((PyObject *)__pyx_v_dus);
__Pyx_XDECREF(__pyx_v_POut);
__Pyx_XDECREF(__pyx_v_kPOut);
__Pyx_XDECREF(__pyx_v_lslim);
__Pyx_XDECREF(__pyx_v_pIn);
__Pyx_XDECREF(__pyx_v_kpin);
__Pyx_XDECREF(__pyx_v_indNoNan);
__Pyx_XDECREF(__pyx_v_indout);
__Pyx_XDECREF(__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_indok);
__Pyx_XDECREF(__pyx_v_pp);
__Pyx_XDECREF(__pyx_v_ee);
__Pyx_XDECREF(__pyx_v_ll);
__Pyx_XDECREF(__pyx_v_RMin);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__206 = PyTuple_Pack(40, __pyx_n_s_pt0, __pyx_n_s_pt1, __pyx_n_s_pt2, __pyx_n_s_k, __pyx_n_s_pts, __pyx_n_s_VPoly, __pyx_n_s_VIn, __pyx_n_s_Lim, __pyx_n_s_LSPoly, __pyx_n_s_LSLim, __pyx_n_s_LSVIn, __pyx_n_s_RMin, __pyx_n_s_Forbid, __pyx_n_s_EpsUz, __pyx_n_s_EpsVz, __pyx_n_s_EpsA, __pyx_n_s_EpsB, __pyx_n_s_EpsPlane, __pyx_n_s_VType, __pyx_n_s_Test, __pyx_n_s_C0, __pyx_n_s_msg, __pyx_n_s_C1, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_npts, __pyx_n_s_Ds, __pyx_n_s_dus, __pyx_n_s_POut, __pyx_n_s_kPOut, __pyx_n_s_lslim, __pyx_n_s_pIn, __pyx_n_s_kpin, __pyx_n_s_indNoNan, __pyx_n_s_indout, __pyx_n_s_ind, __pyx_n_s_indok, __pyx_n_s_pp, __pyx_n_s_ee, __pyx_n_s_ll); if (unlikely(!__pyx_tuple__206)) __PYX_ERR(0, 3884, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__206);
__Pyx_GIVEREF(__pyx_tuple__206);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_49LOS_isVis_PtFromPts_VesStruct, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3884, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_isVis_PtFromPts_VesStruct, __pyx_t_1) < 0) __PYX_ERR(0, 3884, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__207 = (PyObject*)__Pyx_PyCode_New(20, 0, 40, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__206, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_isVis_PtFromPts_VesStruct, 3884, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__207)) __PYX_ERR(0, 3884, __pyx_L1_error)
3885: np.ndarray[double, ndim=1,mode='c'] k,
3886: np.ndarray[double, ndim=2,mode='c'] pts,
3887: np.ndarray[double, ndim=2,mode='c'] VPoly,
3888: np.ndarray[double, ndim=2,mode='c'] VIn,
+3889: Lim=None, LSPoly=None, LSLim=None, LSVIn=None,
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)Py_None);
values[9] = ((PyObject *)Py_None);
values[10] = ((PyObject *)Py_None);
+3890: RMin=None, Forbid=True, EpsUz=_SMALL,
values[11] = ((PyObject *)Py_None);
values[12] = ((PyObject *)Py_True);
values[13] = __pyx_k__80;
values[14] = __pyx_k__81;
values[15] = __pyx_k__82;
values[16] = __pyx_k__83;
values[17] = __pyx_k__84;
values[18] = ((PyObject *)__pyx_n_s_Tor);
/* … */
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__SMALL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3890, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_k__80 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
+3891: EpsVz=_VSMALL, EpsA=_VSMALL, EpsB=_VSMALL,
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_k__81 = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_k__82 = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3891, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_k__83 = __pyx_t_1; __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0;
+3892: EpsPlane=_VSMALL, VType='Tor', Test=True):
values[19] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pt0)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pt1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, 1); __PYX_ERR(0, 3884, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pt2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, 2); __PYX_ERR(0, 3884, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_k)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, 3); __PYX_ERR(0, 3884, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pts)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, 4); __PYX_ERR(0, 3884, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, 5); __PYX_ERR(0, 3884, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, 6); __PYX_ERR(0, 3884, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Lim);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSPoly);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSLim);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSVIn);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RMin);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Forbid);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsUz);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsVz);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsA);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsB);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsPlane);
if (value) { values[17] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 18:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VType);
if (value) { values[18] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 19:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[19] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_isVis_PtFromPts_VesStruct") < 0)) __PYX_ERR(0, 3884, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 20: values[19] = PyTuple_GET_ITEM(__pyx_args, 19);
CYTHON_FALLTHROUGH;
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_pt0 = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_pt0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3884, __pyx_L3_error)
__pyx_v_pt1 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_pt1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3884, __pyx_L3_error)
__pyx_v_pt2 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_pt2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3884, __pyx_L3_error)
__pyx_v_k = ((PyArrayObject *)values[3]);
__pyx_v_pts = ((PyArrayObject *)values[4]);
__pyx_v_VPoly = ((PyArrayObject *)values[5]);
__pyx_v_VIn = ((PyArrayObject *)values[6]);
__pyx_v_Lim = values[7];
__pyx_v_LSPoly = values[8];
__pyx_v_LSLim = values[9];
__pyx_v_LSVIn = values[10];
__pyx_v_RMin = values[11];
__pyx_v_Forbid = values[12];
__pyx_v_EpsUz = values[13];
__pyx_v_EpsVz = values[14];
__pyx_v_EpsA = values[15];
__pyx_v_EpsB = values[16];
__pyx_v_EpsPlane = values[17];
__pyx_v_VType = values[18];
__pyx_v_Test = values[19];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_isVis_PtFromPts_VesStruct", 0, 7, 20, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3884, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_isVis_PtFromPts_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_k), __pyx_ptype_5numpy_ndarray, 1, "k", 0))) __PYX_ERR(0, 3885, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pts), __pyx_ptype_5numpy_ndarray, 1, "pts", 0))) __PYX_ERR(0, 3886, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_VPoly), __pyx_ptype_5numpy_ndarray, 1, "VPoly", 0))) __PYX_ERR(0, 3887, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_VIn), __pyx_ptype_5numpy_ndarray, 1, "VIn", 0))) __PYX_ERR(0, 3888, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_48LOS_isVis_PtFromPts_VesStruct(__pyx_self, __pyx_v_pt0, __pyx_v_pt1, __pyx_v_pt2, __pyx_v_k, __pyx_v_pts, __pyx_v_VPoly, __pyx_v_VIn, __pyx_v_Lim, __pyx_v_LSPoly, __pyx_v_LSLim, __pyx_v_LSVIn, __pyx_v_RMin, __pyx_v_Forbid, __pyx_v_EpsUz, __pyx_v_EpsVz, __pyx_v_EpsA, __pyx_v_EpsB, __pyx_v_EpsPlane, __pyx_v_VType, __pyx_v_Test);
/* … */
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3892, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_k__84 = __pyx_t_1;
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
3893: """ Return an array of bool indices indicating whether each point in pts is
3894: visible from Pt considering vignetting
3895: """
+3896: if Test:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3896, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+3897: C0 = (VPoly.shape[0]==2 and VIn.shape[0]==2
__pyx_t_1 = ((__pyx_v_VPoly->dimensions[0]) == 2);
if (__pyx_t_1) {
} else {
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3897, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L4_bool_binop_done;
}
/* … */
__pyx_t_1 = ((__pyx_v_VIn->dimensions[0]) == 2);
if (__pyx_t_1) {
} else {
/* … */
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3897, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L4_bool_binop_done;
}
+3898: and VIn.shape[1]==VPoly.shape[1]-1)
__pyx_t_1 = ((__pyx_v_VIn->dimensions[1]) == ((__pyx_v_VPoly->dimensions[1]) - 1));
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3898, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_L4_bool_binop_done:;
__pyx_v_C0 = __pyx_t_2;
__pyx_t_2 = 0;
+3899: msg = "Args VPoly and VIn must be of the same shape (2,NS)!"
__Pyx_INCREF(__pyx_kp_s_Args_VPoly_and_VIn_must_be_of_th);
__pyx_v_msg = __pyx_kp_s_Args_VPoly_and_VIn_must_be_of_th;
+3900: assert C0, msg
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3900, __pyx_L1_error)
if (unlikely(!__pyx_t_1)) {
__pyx_t_2 = PyTuple_Pack(1, __pyx_v_msg); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3900, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__PYX_ERR(0, 3900, __pyx_L1_error)
}
}
#endif
+3901: C0 = all([pp is None for pp in [LSPoly,LSLim,LSVIn]])
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_v_LSPoly); __Pyx_GIVEREF(__pyx_v_LSPoly); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_LSPoly); __Pyx_INCREF(__pyx_v_LSLim); __Pyx_GIVEREF(__pyx_v_LSLim); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_LSLim); __Pyx_INCREF(__pyx_v_LSVIn); __Pyx_GIVEREF(__pyx_v_LSVIn); PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_LSVIn); __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; for (;;) { if (__pyx_t_5 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3901, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = (__pyx_v_pp == Py_None); __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 3901, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3901, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_C0, __pyx_t_4); __pyx_t_4 = 0;
+3902: C1 = all([hasattr(pp,'__iter__') and len(pp)==len(LSPoly)
__pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* … */ __pyx_t_1 = __Pyx_HasAttr(__pyx_v_pp, __pyx_n_s_iter); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 3902, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L11_bool_binop_done; } __pyx_t_7 = PyObject_Length(__pyx_v_pp); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3902, __pyx_L1_error) __pyx_t_8 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3902, __pyx_L1_error) __pyx_t_1 = (__pyx_t_7 == __pyx_t_8); __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __pyx_t_6; __pyx_t_6 = 0; __pyx_L11_bool_binop_done:; if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 3902, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_C1 = __pyx_t_3; __pyx_t_3 = 0;
+3903: for pp in [LSPoly,LSLim,LSVIn]])
__pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_LSPoly); __Pyx_GIVEREF(__pyx_v_LSPoly); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_LSPoly); __Pyx_INCREF(__pyx_v_LSLim); __Pyx_GIVEREF(__pyx_v_LSLim); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_LSLim); __Pyx_INCREF(__pyx_v_LSVIn); __Pyx_GIVEREF(__pyx_v_LSVIn); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_LSVIn); __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_5 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_2); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3903, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_2); __pyx_t_2 = 0; /* … */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3904: msg = "Args LSPoly,LSLim,LSVIn must be None or lists of same len()!"
__Pyx_INCREF(__pyx_kp_s_Args_LSPoly_LSLim_LSVIn_must_be); __Pyx_DECREF_SET(__pyx_v_msg, __pyx_kp_s_Args_LSPoly_LSLim_LSVIn_must_be);
+3905: assert C0 or C1, msg
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3905, __pyx_L1_error)
if (!__pyx_t_9) {
} else {
__pyx_t_1 = __pyx_t_9;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_C1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3905, __pyx_L1_error)
__pyx_t_1 = __pyx_t_9;
__pyx_L13_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
__pyx_t_3 = PyTuple_Pack(1, __pyx_v_msg); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3905, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__PYX_ERR(0, 3905, __pyx_L1_error)
}
}
#endif
+3906: C0 = RMin is None or type(RMin) in [float,int,np.float64,np.int64]
__pyx_t_1 = (__pyx_v_RMin == Py_None);
if (!__pyx_t_1) {
} else {
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __pyx_t_4;
__pyx_t_4 = 0;
goto __pyx_L15_bool_binop_done;
}
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_RMin)));
__pyx_t_4 = ((PyObject *)Py_TYPE(__pyx_v_RMin));
__pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_t_4), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3906, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (!__pyx_t_9) {
} else {
__pyx_t_1 = __pyx_t_9;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_t_4), ((PyObject *)(&PyInt_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3906, __pyx_L1_error)
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (!__pyx_t_9) {
} else {
__pyx_t_1 = __pyx_t_9;
goto __pyx_L17_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_float64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (!__pyx_t_9) {
} else {
__pyx_t_1 = __pyx_t_9;
goto __pyx_L17_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyObject_RichCompare(((PyObject *)__pyx_t_4), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __pyx_t_9;
__pyx_L17_bool_binop_done:;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_9 = __pyx_t_1;
__pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = __pyx_t_4;
__pyx_t_4 = 0;
__pyx_L15_bool_binop_done:;
__Pyx_DECREF_SET(__pyx_v_C0, __pyx_t_3);
__pyx_t_3 = 0;
+3907: assert msg, "Arg RMin must be None or a float!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_msg); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3907, __pyx_L1_error)
if (unlikely(!__pyx_t_9)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_RMin_must_be_None_or_a_float);
__PYX_ERR(0, 3907, __pyx_L1_error)
}
}
#endif
+3908: assert type(Forbid) is bool, "Arg Forbid must be a bool!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_9 = (((PyObject *)Py_TYPE(__pyx_v_Forbid)) == ((PyObject *)__pyx_ptype_7cpython_4bool_bool));
if (unlikely(!(__pyx_t_9 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Forbid_must_be_a_bool);
__PYX_ERR(0, 3908, __pyx_L1_error)
}
}
#endif
+3909: C0 = all([type(ee) in [int,float,np.int64,np.float64] and ee<1.e-4
__pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_ee))); __pyx_t_6 = ((PyObject *)Py_TYPE(__pyx_v_ee)); __pyx_t_10 = PyObject_RichCompare(((PyObject *)__pyx_t_6), ((PyObject *)(&PyInt_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3909, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!__pyx_t_1) { } else { __pyx_t_9 = __pyx_t_1; goto __pyx_L25_bool_binop_done; } __pyx_t_10 = PyObject_RichCompare(((PyObject *)__pyx_t_6), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3909, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!__pyx_t_1) { } else { __pyx_t_9 = __pyx_t_1; goto __pyx_L25_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_int64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_RichCompare(((PyObject *)__pyx_t_6), __pyx_t_11, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (!__pyx_t_1) { } else { __pyx_t_9 = __pyx_t_1; goto __pyx_L25_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_float64); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyObject_RichCompare(((PyObject *)__pyx_t_6), __pyx_t_11, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_9 = __pyx_t_1; __pyx_L25_bool_binop_done:; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_1 = __pyx_t_9; if (__pyx_t_1) { } else { __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L23_bool_binop_done; } __pyx_t_6 = PyObject_RichCompare(__pyx_v_ee, __pyx_float_1_eneg_4, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = __pyx_t_6; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_L23_bool_binop_done:; if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF_SET(__pyx_v_C0, __pyx_t_2); __pyx_t_2 = 0;
+3910: for ee in [EpsUz,EpsVz,EpsA,EpsB,EpsPlane]])
__pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_EpsUz); __Pyx_GIVEREF(__pyx_v_EpsUz); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_EpsUz); __Pyx_INCREF(__pyx_v_EpsVz); __Pyx_GIVEREF(__pyx_v_EpsVz); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_EpsVz); __Pyx_INCREF(__pyx_v_EpsA); __Pyx_GIVEREF(__pyx_v_EpsA); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_EpsA); __Pyx_INCREF(__pyx_v_EpsB); __Pyx_GIVEREF(__pyx_v_EpsB); PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_EpsB); __Pyx_INCREF(__pyx_v_EpsPlane); __Pyx_GIVEREF(__pyx_v_EpsPlane); PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_v_EpsPlane); __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; for (;;) { if (__pyx_t_5 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3910, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3910, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_XDECREF_SET(__pyx_v_ee, __pyx_t_4); __pyx_t_4 = 0; /* … */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3911: assert C0, "Args [EpsUz,EpsVz,EpsA,EpsB] must be floats < 1.e-4!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3911, __pyx_L1_error)
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_EpsUz_EpsVz_EpsA_EpsB_must);
__PYX_ERR(0, 3911, __pyx_L1_error)
}
}
#endif
+3912: C0 = type(VType) is str and VType.lower() in ['tor','lin']
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_VType)) == ((PyObject *)(&PyString_Type)));
if (__pyx_t_1) {
} else {
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3912, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
goto __pyx_L29_bool_binop_done;
}
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_VType, __pyx_n_s_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3912, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_6 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
__pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
if (likely(__pyx_t_6)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
__Pyx_INCREF(__pyx_t_6);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_4, function);
}
}
__pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3912, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3912, __pyx_L1_error)
if (!__pyx_t_9) {
} else {
__pyx_t_1 = __pyx_t_9;
goto __pyx_L31_bool_binop_done;
}
__pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_lin, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3912, __pyx_L1_error)
__pyx_t_1 = __pyx_t_9;
__pyx_L31_bool_binop_done:;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_9 = __pyx_t_1;
__pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3912, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_2 = __pyx_t_3;
__pyx_t_3 = 0;
__pyx_L29_bool_binop_done:;
__Pyx_DECREF_SET(__pyx_v_C0, __pyx_t_2);
__pyx_t_2 = 0;
+3913: assert C0, "Arg VType must be a str in ['Tor','Lin']!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3913, __pyx_L1_error)
if (unlikely(!__pyx_t_9)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_VType_must_be_a_str_in_Tor_L_2);
__PYX_ERR(0, 3913, __pyx_L1_error)
}
}
#endif
3914:
+3915: cdef int ii, jj, npts=pts.shape[1]
__pyx_v_npts = (__pyx_v_pts->dimensions[1]);
3916: cdef np.ndarray[double, ndim=2, mode='c'] Ds, dus
+3917: Ds = np.tile(np.r_[pt0,pt1,pt2], (npts,1)).T
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_tile); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_r_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pt0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_pt1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyFloat_FromDouble(__pyx_v_pt2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_11); __pyx_t_3 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_npts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_12); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_int_1); __pyx_t_12 = 0; __pyx_t_12 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_11, __pyx_t_6}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_11, __pyx_t_6}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_13, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_13, __pyx_t_6); __pyx_t_11 = 0; __pyx_t_6 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 3917, __pyx_L1_error) __pyx_t_14 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Ds.rcbuffer->pybuffer); __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Ds.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack); if (unlikely(__pyx_t_13 < 0)) { PyErr_Fetch(&__pyx_t_15, &__pyx_t_16, &__pyx_t_17); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Ds.rcbuffer->pybuffer, (PyObject*)__pyx_v_Ds, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_15); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_17); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_15, __pyx_t_16, __pyx_t_17); } __pyx_t_15 = __pyx_t_16 = __pyx_t_17 = 0; } __pyx_pybuffernd_Ds.diminfo[0].strides = __pyx_pybuffernd_Ds.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Ds.diminfo[0].shape = __pyx_pybuffernd_Ds.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_Ds.diminfo[1].strides = __pyx_pybuffernd_Ds.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_Ds.diminfo[1].shape = __pyx_pybuffernd_Ds.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3917, __pyx_L1_error) } __pyx_t_14 = 0; __pyx_v_Ds = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
+3918: dus = (pts-Ds)/k
__pyx_t_4 = PyNumber_Subtract(((PyObject *)__pyx_v_pts), ((PyObject *)__pyx_v_Ds)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_4, ((PyObject *)__pyx_v_k)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3918, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 3918, __pyx_L1_error) __pyx_t_14 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dus.rcbuffer->pybuffer); __pyx_t_13 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dus.rcbuffer->pybuffer, (PyObject*)__pyx_t_14, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack); if (unlikely(__pyx_t_13 < 0)) { PyErr_Fetch(&__pyx_t_17, &__pyx_t_16, &__pyx_t_15); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dus.rcbuffer->pybuffer, (PyObject*)__pyx_v_dus, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_17); Py_XDECREF(__pyx_t_16); Py_XDECREF(__pyx_t_15); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_17, __pyx_t_16, __pyx_t_15); } __pyx_t_17 = __pyx_t_16 = __pyx_t_15 = 0; } __pyx_pybuffernd_dus.diminfo[0].strides = __pyx_pybuffernd_dus.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dus.diminfo[0].shape = __pyx_pybuffernd_dus.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_dus.diminfo[1].strides = __pyx_pybuffernd_dus.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_dus.diminfo[1].shape = __pyx_pybuffernd_dus.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 3918, __pyx_L1_error) } __pyx_t_14 = 0; __pyx_v_dus = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
3919:
+3920: if VType.lower()=='tor':
__pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_VType, __pyx_n_s_lower); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3920, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_9) { /* … */ goto __pyx_L33; }
3921: # RMin is necessary to avoid looking on the other side of the tokamak
+3922: if RMin is None:
__pyx_t_9 = (__pyx_v_RMin == Py_None);
__pyx_t_1 = (__pyx_t_9 != 0);
if (__pyx_t_1) {
/* … */
}
+3923: RMin = 0.95*min(np.min(VPoly[0,:]),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_VPoly), __pyx_tuple__36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_10 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_18, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_4); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_2 = PyNumber_Multiply(__pyx_float_0_95, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3923, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF_SET(__pyx_v_RMin, __pyx_t_2); __pyx_t_2 = 0;
+3924: np.min(np.hypot(Ds[0,:],Ds[1,:])))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_hypot); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Ds), __pyx_tuple__36); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_Ds), __pyx_tuple__42); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_3 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_6, __pyx_t_12}; __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_6, __pyx_t_12}; __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_18 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_13, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_13, __pyx_t_12); __pyx_t_6 = 0; __pyx_t_12 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_18, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_2 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_4); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; /* … */ __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3924, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3924, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_1) { __Pyx_INCREF(__pyx_t_2); __pyx_t_11 = __pyx_t_2; } else { __Pyx_INCREF(__pyx_t_10); __pyx_t_11 = __pyx_t_10; } __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
3925:
3926: # Main function to compute intersections with Vessel
+3927: POut = Calc_LOS_PInOut_Tor(Ds, dus, VPoly, VIn, Lim=Lim, Forbid=Forbid,
__pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_Ds), PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 3927, __pyx_L1_error) __pyx_t_20 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_dus), PyBUF_WRITABLE); if (unlikely(!__pyx_t_20.memview)) __PYX_ERR(0, 3927, __pyx_L1_error) __pyx_t_21 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPoly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_21.memview)) __PYX_ERR(0, 3927, __pyx_L1_error) __pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VIn), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 3927, __pyx_L1_error) if (!(likely(((__pyx_v_Forbid) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_Forbid, __pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 3927, __pyx_L1_error) /* … */ __pyx_t_28.__pyx_n = 8; __pyx_t_28.Lim = __pyx_v_Lim; __pyx_t_28.Forbid = ((PyBoolObject *)__pyx_v_Forbid); __pyx_t_28.RMin = __pyx_v_RMin; __pyx_t_28.EpsUz = __pyx_t_23; __pyx_t_28.EpsVz = __pyx_t_24; __pyx_t_28.EpsA = __pyx_t_25; __pyx_t_28.EpsB = __pyx_t_26; __pyx_t_28.EpsPlane = __pyx_t_27; __pyx_t_2 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor(__pyx_t_19, __pyx_t_20, __pyx_t_21, __pyx_t_22, &__pyx_t_28); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3927, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1); __pyx_t_20.memview = NULL; __pyx_t_20.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1); __pyx_t_21.memview = NULL; __pyx_t_21.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1); __pyx_t_22.memview = NULL; __pyx_t_22.data = NULL;
+3928: RMin=RMin, EpsUz=EpsUz, EpsVz=EpsVz,
__pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_v_EpsUz); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3928, __pyx_L1_error) __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_EpsVz); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3928, __pyx_L1_error)
+3929: EpsA=EpsA, EpsB=EpsB, EpsPlane=EpsPlane)[1]
__pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_v_EpsA); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3929, __pyx_L1_error) __pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_v_EpsB); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3929, __pyx_L1_error) __pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3929, __pyx_L1_error) /* … */ __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_POut = __pyx_t_11; __pyx_t_11 = 0;
3930:
3931: # k = coordinate (in m) along the line from D
+3932: kPOut = np.sqrt(np.sum((POut-Ds)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_POut, ((PyObject *)__pyx_v_Ds)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_18 = PyNumber_Power(__pyx_t_2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_t_18, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 3932, __pyx_L1_error) __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_11 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_18, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_12); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_kPOut = __pyx_t_11; __pyx_t_11 = 0;
+3933: assert np.allclose(kPOut,np.sum((POut-Ds)*dus,axis=0),equal_nan=True)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_allclose); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sum); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyNumber_Subtract(__pyx_v_POut, ((PyObject *)__pyx_v_Ds)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_18 = PyNumber_Multiply(__pyx_t_11, ((PyObject *)__pyx_v_dus)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_GIVEREF(__pyx_t_18);
PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_18);
__pyx_t_18 = 0;
__pyx_t_18 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (PyDict_SetItem(__pyx_t_18, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 3933, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, __pyx_t_18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_INCREF(__pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_v_kPOut);
PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_t_2);
PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_2);
__pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_equal_nan, Py_True) < 0) __PYX_ERR(0, 3933, __pyx_L1_error)
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_18, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 3933, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (unlikely(!__pyx_t_1)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3933, __pyx_L1_error)
}
}
#endif
3934: # Structural optimzation : do everything in one big for loop and only
3935: # keep the relevant points (to save memory)
+3936: if LSPoly is not None:
__pyx_t_1 = (__pyx_v_LSPoly != Py_None);
__pyx_t_9 = (__pyx_t_1 != 0);
if (__pyx_t_9) {
/* … */
}
+3937: for ii in range(0,len(LSPoly)):
__pyx_t_5 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3937, __pyx_L1_error) __pyx_t_8 = __pyx_t_5; for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_8; __pyx_t_13+=1) { __pyx_v_ii = __pyx_t_13;
+3938: C0 = not all([hasattr(ll,'__iter__') for ll in LSLim[ii]])
__pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { __pyx_t_18 = __pyx_t_2; __Pyx_INCREF(__pyx_t_18); __pyx_t_7 = 0; __pyx_t_29 = NULL; } else { __pyx_t_7 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_29 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3938, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (likely(!__pyx_t_29)) { if (likely(PyList_CheckExact(__pyx_t_18))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 3938, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_18, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 3938, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_18, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif } } else { __pyx_t_2 = __pyx_t_29(__pyx_t_18); if (unlikely(!__pyx_t_2)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3938, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_2); } __Pyx_XDECREF_SET(__pyx_v_ll, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_HasAttr(__pyx_v_ll, __pyx_n_s_iter); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 3938, __pyx_L1_error) __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_11, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyBool_FromLong((!__pyx_t_9)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3938, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_XDECREF_SET(__pyx_v_C0, __pyx_t_18); __pyx_t_18 = 0;
+3939: if LSLim[ii] is None or C0:
__pyx_t_18 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_1 = (__pyx_t_18 == Py_None); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_30 = (__pyx_t_1 != 0); if (!__pyx_t_30) { } else { __pyx_t_9 = __pyx_t_30; goto __pyx_L41_bool_binop_done; } __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3939, __pyx_L1_error) __pyx_t_9 = __pyx_t_30; __pyx_L41_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L40; }
+3940: lslim = [LSLim[ii]]
__pyx_t_18 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_11 = PyList_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_18); PyList_SET_ITEM(__pyx_t_11, 0, __pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_11); __pyx_t_11 = 0;
3941: else:
+3942: lslim = LSLim[ii]
/*else*/ {
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3942, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_11);
__pyx_t_11 = 0;
}
__pyx_L40:;
+3943: for jj in range(0,len(lslim)):
__pyx_t_7 = PyObject_Length(__pyx_v_lslim); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3943, __pyx_L1_error) __pyx_t_31 = __pyx_t_7; for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) { __pyx_v_jj = __pyx_t_32;
+3944: pIn = Calc_LOS_PInOut_Tor(Ds, dus, LSPoly[ii], LSVIn[ii],
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_Ds), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 3944, __pyx_L1_error) __pyx_t_21 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_dus), PyBUF_WRITABLE); if (unlikely(!__pyx_t_21.memview)) __PYX_ERR(0, 3944, __pyx_L1_error) __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_LSPoly, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_20 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_20.memview)) __PYX_ERR(0, 3944, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_GetItemInt(__pyx_v_LSVIn, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_11, PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 3944, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_28.__pyx_n = 8; __pyx_t_28.Lim = __pyx_t_11; __pyx_t_28.Forbid = ((PyBoolObject *)__pyx_v_Forbid); __pyx_t_28.RMin = __pyx_v_RMin; __pyx_t_28.EpsUz = __pyx_t_27; __pyx_t_28.EpsVz = __pyx_t_26; __pyx_t_28.EpsA = __pyx_t_25; __pyx_t_28.EpsB = __pyx_t_24; __pyx_t_28.EpsPlane = __pyx_t_23; __pyx_t_18 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor(__pyx_t_22, __pyx_t_21, __pyx_t_20, __pyx_t_19, &__pyx_t_28); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3944, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1); __pyx_t_22.memview = NULL; __pyx_t_22.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1); __pyx_t_21.memview = NULL; __pyx_t_21.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1); __pyx_t_20.memview = NULL; __pyx_t_20.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+3945: Lim=lslim[jj], Forbid=Forbid,
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (!(likely(((__pyx_v_Forbid) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_Forbid, __pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 3945, __pyx_L1_error)
+3946: RMin=RMin, EpsUz=EpsUz,
__pyx_t_27 = __pyx_PyFloat_AsDouble(__pyx_v_EpsUz); if (unlikely((__pyx_t_27 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3946, __pyx_L1_error)
+3947: EpsVz=EpsVz, EpsA=EpsA, EpsB=EpsB,
__pyx_t_26 = __pyx_PyFloat_AsDouble(__pyx_v_EpsVz); if (unlikely((__pyx_t_26 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3947, __pyx_L1_error) __pyx_t_25 = __pyx_PyFloat_AsDouble(__pyx_v_EpsA); if (unlikely((__pyx_t_25 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3947, __pyx_L1_error) __pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_EpsB); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3947, __pyx_L1_error)
+3948: EpsPlane=EpsPlane)[0]
__pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3948, __pyx_L1_error) /* … */ __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_18, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3948, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_XDECREF_SET(__pyx_v_pIn, __pyx_t_11); __pyx_t_11 = 0;
+3949: kpin = np.sqrt(np.sum((Ds-pIn)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_sum); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_Subtract(((PyObject *)__pyx_v_Ds), __pyx_v_pIn); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_12 = PyNumber_Power(__pyx_t_18, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 3949, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_18, __pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_11 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_12, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_kpin, __pyx_t_11); __pyx_t_11 = 0;
+3950: indNoNan = (~np.isnan(kpin)) & (~np.isnan(kPOut))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_11 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Invert(__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_11 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_2, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Invert(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_And(__pyx_t_4, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_indNoNan, __pyx_t_11); __pyx_t_11 = 0;
+3951: indout = np.zeros((npts,),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_npts); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 3951, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_11, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_indout, __pyx_t_2); __pyx_t_2 = 0;
+3952: indout[indNoNan] = kpin[indNoNan]<kPOut[indNoNan]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indNoNan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_kPOut, __pyx_v_indNoNan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_11 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_v_indNoNan, __pyx_t_11) < 0)) __PYX_ERR(0, 3952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+3953: indout[(~np.isnan(kpin)) & np.isnan(kPOut)] = True
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_isnan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_11 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Invert(__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_isnan); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_11 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_4, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_And(__pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_t_12, Py_True) < 0)) __PYX_ERR(0, 3953, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+3954: if np.any(indout):
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_12 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_v_indout) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_indout); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3954, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3954, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_9) { /* … */ } } }
+3955: kPOut[indout] = kpin[indout]
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indout); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3955, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(PyObject_SetItem(__pyx_v_kPOut, __pyx_v_indout, __pyx_t_12) < 0)) __PYX_ERR(0, 3955, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
3956: else:
+3957: POut = Calc_LOS_PInOut_Lin(Ds, dus, VPoly, VIn, Lim, EpsPlane=EpsPlane)[1]
/*else*/ {
__pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_Ds), PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 3957, __pyx_L1_error)
__pyx_t_20 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_dus), PyBUF_WRITABLE); if (unlikely(!__pyx_t_20.memview)) __PYX_ERR(0, 3957, __pyx_L1_error)
__pyx_t_21 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPoly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_21.memview)) __PYX_ERR(0, 3957, __pyx_L1_error)
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VIn), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 3957, __pyx_L1_error)
__pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3957, __pyx_L1_error)
__pyx_t_33.__pyx_n = 1;
__pyx_t_33.EpsPlane = __pyx_t_23;
__pyx_t_12 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin(__pyx_t_19, __pyx_t_20, __pyx_t_21, __pyx_t_22, __pyx_v_Lim, &__pyx_t_33); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__PYX_XDEC_MEMVIEW(&__pyx_t_19, 1);
__pyx_t_19.memview = NULL;
__pyx_t_19.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_20, 1);
__pyx_t_20.memview = NULL;
__pyx_t_20.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_21, 1);
__pyx_t_21.memview = NULL;
__pyx_t_21.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_22, 1);
__pyx_t_22.memview = NULL;
__pyx_t_22.data = NULL;
__pyx_t_2 = __Pyx_GetItemInt(__pyx_t_12, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3957, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_v_POut = __pyx_t_2;
__pyx_t_2 = 0;
+3958: kPOut = np.sqrt(np.sum((POut-Ds)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Subtract(__pyx_v_POut, ((PyObject *)__pyx_v_Ds)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_18 = PyNumber_Power(__pyx_t_12, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_t_18, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 3958, __pyx_L1_error) __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_12, __pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_2 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_18, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_v_kPOut = __pyx_t_2; __pyx_t_2 = 0;
+3959: assert np.allclose(kPOut,np.sum((POut-Ds)*dus,axis=0),equal_nan=True)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_allclose); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sum); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Subtract(__pyx_v_POut, ((PyObject *)__pyx_v_Ds)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_18 = PyNumber_Multiply(__pyx_t_2, ((PyObject *)__pyx_v_dus)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_GIVEREF(__pyx_t_18);
PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_18);
__pyx_t_18 = 0;
__pyx_t_18 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
if (PyDict_SetItem(__pyx_t_18, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 3959, __pyx_L1_error)
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_18);
__Pyx_INCREF(__pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_v_kPOut);
PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_12);
__pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_equal_nan, Py_True) < 0) __PYX_ERR(0, 3959, __pyx_L1_error)
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_18, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3959, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!__pyx_t_9)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 3959, __pyx_L1_error)
}
}
#endif
+3960: if LSPoly is not None:
__pyx_t_9 = (__pyx_v_LSPoly != Py_None);
__pyx_t_30 = (__pyx_t_9 != 0);
if (__pyx_t_30) {
/* … */
}
}
__pyx_L33:;
+3961: for ii in range(0,len(LSPoly)):
__pyx_t_5 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3961, __pyx_L1_error) __pyx_t_8 = __pyx_t_5; for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_8; __pyx_t_13+=1) { __pyx_v_ii = __pyx_t_13;
+3962: C0 = not all([hasattr(ll,'__iter__') for ll in LSLim[ii]])
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) { __pyx_t_18 = __pyx_t_12; __Pyx_INCREF(__pyx_t_18); __pyx_t_7 = 0; __pyx_t_29 = NULL; } else { __pyx_t_7 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_29 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 3962, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; for (;;) { if (likely(!__pyx_t_29)) { if (likely(PyList_CheckExact(__pyx_t_18))) { if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_7); __Pyx_INCREF(__pyx_t_12); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 3962, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_18, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } else { if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_18)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_7); __Pyx_INCREF(__pyx_t_12); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 3962, __pyx_L1_error) #else __pyx_t_12 = PySequence_ITEM(__pyx_t_18, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); #endif } } else { __pyx_t_12 = __pyx_t_29(__pyx_t_18); if (unlikely(!__pyx_t_12)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 3962, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_12); } __Pyx_XDECREF_SET(__pyx_v_ll, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_30 = __Pyx_HasAttr(__pyx_v_ll, __pyx_n_s_iter); if (unlikely(__pyx_t_30 == ((int)-1))) __PYX_ERR(0, 3962, __pyx_L1_error) __pyx_t_12 = __Pyx_PyBool_FromLong(__pyx_t_30); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_12))) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyBool_FromLong((!__pyx_t_30)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_XDECREF_SET(__pyx_v_C0, __pyx_t_18); __pyx_t_18 = 0;
+3963: lslim = [LSLim[ii]] if C0 else LSLim[ii]
__pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3963, __pyx_L1_error) if (__pyx_t_30) { __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = PyList_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_12, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_18 = __pyx_t_12; __pyx_t_12 = 0; } else { __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_18 = __pyx_t_12; __pyx_t_12 = 0; } __Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_18); __pyx_t_18 = 0;
+3964: for jj in range(0,len(lslim)):
__pyx_t_7 = PyObject_Length(__pyx_v_lslim); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3964, __pyx_L1_error) __pyx_t_31 = __pyx_t_7; for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) { __pyx_v_jj = __pyx_t_32;
+3965: pIn = Calc_LOS_PInOut_Lin(Ds, dus, LSPoly[ii], LSVIn[ii],
__pyx_t_22 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_Ds), PyBUF_WRITABLE); if (unlikely(!__pyx_t_22.memview)) __PYX_ERR(0, 3965, __pyx_L1_error) __pyx_t_21 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_dus), PyBUF_WRITABLE); if (unlikely(!__pyx_t_21.memview)) __PYX_ERR(0, 3965, __pyx_L1_error) __pyx_t_18 = __Pyx_GetItemInt(__pyx_v_LSPoly, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_20 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_18, PyBUF_WRITABLE); if (unlikely(!__pyx_t_20.memview)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_GetItemInt(__pyx_v_LSVIn, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_18, PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; /* … */ __pyx_t_33.__pyx_n = 1; __pyx_t_33.EpsPlane = __pyx_t_23; __pyx_t_12 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin(__pyx_t_22, __pyx_t_21, __pyx_t_20, __pyx_t_19, __pyx_t_18, &__pyx_t_33); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __PYX_XDEC_MEMVIEW(&__pyx_t_22, 1); __pyx_t_22.memview = NULL; __pyx_t_22.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1); __pyx_t_21.memview = NULL; __pyx_t_21.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_20, 1); __pyx_t_20.memview = NULL; __pyx_t_20.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3966: lslim[jj], EpsPlane=EpsPlane)[0]
__pyx_t_18 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 3966, __pyx_L1_error) /* … */ __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_pIn, __pyx_t_18); __pyx_t_18 = 0;
+3967: kpin = np.sqrt(np.sum((Ds-pIn)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sum); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Subtract(((PyObject *)__pyx_v_Ds), __pyx_v_pIn); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_10 = PyNumber_Power(__pyx_t_12, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 3967, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_12, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_18 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_10, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3967, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_kpin, __pyx_t_18); __pyx_t_18 = 0;
+3968: indNoNan = (~np.isnan(kpin)) & (~np.isnan(kPOut))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_18 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Invert(__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_18 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_2, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Invert(__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyNumber_And(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3968, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_indNoNan, __pyx_t_18); __pyx_t_18 = 0;
+3969: indout = np.zeros((npts,),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_npts); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 3969, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_18, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_XDECREF_SET(__pyx_v_indout, __pyx_t_2); __pyx_t_2 = 0;
+3970: indout[indNoNan] = kpin[indNoNan]<kPOut[indNoNan]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indNoNan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_kPOut, __pyx_v_indNoNan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_18 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_v_indNoNan, __pyx_t_18) < 0)) __PYX_ERR(0, 3970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3971: indout[(~np.isnan(kpin)) & np.isnan(kPOut)] = True
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_isnan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_18 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Invert(__pyx_t_18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_isnan); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_18 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_4, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_And(__pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_t_10, Py_True) < 0)) __PYX_ERR(0, 3971, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+3972: if np.any(indout):
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_10 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_18, __pyx_v_indout) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_indout); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_30 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_30 < 0)) __PYX_ERR(0, 3972, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (__pyx_t_30) { /* … */ } } }
+3973: kPOut[indout] = kpin[indout]
__pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indout); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(PyObject_SetItem(__pyx_v_kPOut, __pyx_v_indout, __pyx_t_10) < 0)) __PYX_ERR(0, 3973, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
3974:
+3975: ind = np.zeros((npts,),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_npts); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (PyDict_SetItem(__pyx_t_18, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 3975, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_10, __pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_v_ind = __pyx_t_4; __pyx_t_4 = 0;
+3976: indok = (~np.isnan(k)) & (~np.isnan(kPOut))
__Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_isnan); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_4 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_18, ((PyObject *)__pyx_v_k)) : __Pyx_PyObject_CallOneArg(__pyx_t_10, ((PyObject *)__pyx_v_k)); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Invert(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_isnan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_18, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Invert(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_And(__pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_indok = __pyx_t_4; __pyx_t_4 = 0;
+3977: ind[indok] = k[indok]<kPOut[indok]
__pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_k), __pyx_v_indok); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_kPOut, __pyx_v_indok); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3977, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(__pyx_v_ind, __pyx_v_indok, __pyx_t_10) < 0)) __PYX_ERR(0, 3977, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+3978: return ind
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ind); __pyx_r = __pyx_v_ind; goto __pyx_L0;
3979:
3980:
3981:
3982:
3983:
3984:
3985: ######################################################################
3986: # Sampling
3987: ######################################################################
3988:
3989: @cython.cdivision(True)
3990: @cython.wraparound(False)
3991: @cython.boundscheck(False)
3992: @cython.initializedcheck(False)
3993: @cython.profile(False)
3994: @cython.linetrace(False)
3995: @cython.binding(False)
+3996: def LOS_get_sample(double[:,::1] Ds, double[:,::1] us, dL,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_51LOS_get_sample(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_50LOS_get_sample[] = " Return the sampled line, with the specified method\n\n 'linspace': return the N+1 edges, including the first and last point\n 'sum' : return N segments centers\n 'simps': return N+1 egdes, N even (for scipy.integrate.simps)\n 'romb' : return N+1 edges, N+1 = 2**k+1 (for scipy.integrate.romb)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_51LOS_get_sample = {"LOS_get_sample", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_51LOS_get_sample, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_50LOS_get_sample};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_51LOS_get_sample(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_Ds = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_us = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_dL = 0;
__Pyx_memviewslice __pyx_v_DLs = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_dLMode = 0;
PyObject *__pyx_v_method = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_get_sample (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Ds,&__pyx_n_s_us,&__pyx_n_s_dL,&__pyx_n_s_DLs,&__pyx_n_s_dLMode,&__pyx_n_s_method,&__pyx_n_s_Test,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
values[4] = ((PyObject*)__pyx_n_s_abs);
values[5] = ((PyObject*)__pyx_n_s_sum);
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_50LOS_get_sample(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_Ds, __Pyx_memviewslice __pyx_v_us, PyObject *__pyx_v_dL, __Pyx_memviewslice __pyx_v_DLs, PyObject *__pyx_v_dLMode, PyObject *__pyx_v_method, PyObject *__pyx_v_Test) {
PyObject *__pyx_v_C0 = NULL;
PyObject *__pyx_v_C1 = NULL;
unsigned int __pyx_v_ii;
unsigned int __pyx_v_jj;
unsigned int __pyx_v_N;
unsigned int __pyx_v_ND;
double __pyx_v_kkk;
double __pyx_v_D0;
double __pyx_v_D1;
double __pyx_v_D2;
double __pyx_v_u0;
double __pyx_v_u1;
double __pyx_v_u2;
double __pyx_v_dl0;
double __pyx_v_dl;
PyArrayObject *__pyx_v_dLr = 0;
PyArrayObject *__pyx_v_kk = 0;
PyArrayObject *__pyx_v_pts = 0;
PyObject *__pyx_v_Pts = 0;
PyObject *__pyx_v_k = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dLr;
__Pyx_Buffer __pyx_pybuffer_dLr;
__Pyx_LocalBuf_ND __pyx_pybuffernd_kk;
__Pyx_Buffer __pyx_pybuffer_kk;
__Pyx_LocalBuf_ND __pyx_pybuffernd_pts;
__Pyx_Buffer __pyx_pybuffer_pts;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_get_sample", 0);
__Pyx_INCREF(__pyx_v_dLMode);
__Pyx_INCREF(__pyx_v_method);
__pyx_pybuffer_dLr.pybuffer.buf = NULL;
__pyx_pybuffer_dLr.refcount = 0;
__pyx_pybuffernd_dLr.data = NULL;
__pyx_pybuffernd_dLr.rcbuffer = &__pyx_pybuffer_dLr;
__pyx_pybuffer_kk.pybuffer.buf = NULL;
__pyx_pybuffer_kk.refcount = 0;
__pyx_pybuffernd_kk.data = NULL;
__pyx_pybuffernd_kk.rcbuffer = &__pyx_pybuffer_kk;
__pyx_pybuffer_pts.pybuffer.buf = NULL;
__pyx_pybuffer_pts.refcount = 0;
__pyx_pybuffernd_pts.data = NULL;
__pyx_pybuffernd_pts.rcbuffer = &__pyx_pybuffer_pts;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.LOS_get_sample", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_C0);
__Pyx_XDECREF(__pyx_v_C1);
__Pyx_XDECREF((PyObject *)__pyx_v_dLr);
__Pyx_XDECREF((PyObject *)__pyx_v_kk);
__Pyx_XDECREF((PyObject *)__pyx_v_pts);
__Pyx_XDECREF(__pyx_v_Pts);
__Pyx_XDECREF(__pyx_v_k);
__PYX_XDEC_MEMVIEW(&__pyx_v_Ds, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_us, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_DLs, 1);
__Pyx_XDECREF(__pyx_v_dLMode);
__Pyx_XDECREF(__pyx_v_method);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__208 = PyTuple_Pack(27, __pyx_n_s_Ds, __pyx_n_s_us, __pyx_n_s_dL, __pyx_n_s_DLs, __pyx_n_s_dLMode, __pyx_n_s_method, __pyx_n_s_Test, __pyx_n_s_C0, __pyx_n_s_C1, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_N, __pyx_n_s_ND, __pyx_n_s_kkk, __pyx_n_s_D0, __pyx_n_s_D1, __pyx_n_s_D2, __pyx_n_s_u0, __pyx_n_s_u1, __pyx_n_s_u2, __pyx_n_s_dl0, __pyx_n_s_dl, __pyx_n_s_dLr, __pyx_n_s_kk, __pyx_n_s_pts, __pyx_n_s_Pts, __pyx_n_s_k); if (unlikely(!__pyx_tuple__208)) __PYX_ERR(0, 3996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__208);
__Pyx_GIVEREF(__pyx_tuple__208);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_51LOS_get_sample, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_get_sample, __pyx_t_1) < 0) __PYX_ERR(0, 3996, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(7, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__208, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_get_sample, 3996, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(0, 3996, __pyx_L1_error)
3997: double[:,::1] DLs, str dLMode='abs', str method='sum',
+3998: Test=True):
values[6] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ds)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_get_sample", 0, 4, 7, 1); __PYX_ERR(0, 3996, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_get_sample", 0, 4, 7, 2); __PYX_ERR(0, 3996, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DLs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_get_sample", 0, 4, 7, 3); __PYX_ERR(0, 3996, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dLMode);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_method);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_get_sample") < 0)) __PYX_ERR(0, 3996, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_Ds = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_Ds.memview)) __PYX_ERR(0, 3996, __pyx_L3_error)
__pyx_v_us = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_us.memview)) __PYX_ERR(0, 3996, __pyx_L3_error)
__pyx_v_dL = values[2];
__pyx_v_DLs = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_DLs.memview)) __PYX_ERR(0, 3997, __pyx_L3_error)
__pyx_v_dLMode = ((PyObject*)values[4]);
__pyx_v_method = ((PyObject*)values[5]);
__pyx_v_Test = values[6];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_get_sample", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3996, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_get_sample", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dLMode), (&PyString_Type), 1, "dLMode", 1))) __PYX_ERR(0, 3997, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyString_Type), 1, "method", 1))) __PYX_ERR(0, 3997, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_50LOS_get_sample(__pyx_self, __pyx_v_Ds, __pyx_v_us, __pyx_v_dL, __pyx_v_DLs, __pyx_v_dLMode, __pyx_v_method, __pyx_v_Test);
3999:
4000: """ Return the sampled line, with the specified method
4001:
4002: 'linspace': return the N+1 edges, including the first and last point
4003: 'sum' : return N segments centers
4004: 'simps': return N+1 egdes, N even (for scipy.integrate.simps)
4005: 'romb' : return N+1 edges, N+1 = 2**k+1 (for scipy.integrate.romb)
4006: """
+4007: if Test:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4007, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4008: assert Ds.shape[0]==us.shape[0]==3, "Args Ds, us - dim 0"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = ((__pyx_v_Ds.shape[0]) == (__pyx_v_us.shape[0]));
if (__pyx_t_1) {
__pyx_t_1 = ((__pyx_v_us.shape[0]) == 3);
}
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_Ds_us_dim_0);
__PYX_ERR(0, 4008, __pyx_L1_error)
}
}
#endif
+4009: assert DLs.shape[0]==2, "Arg DLs - dim 0"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!(((__pyx_v_DLs.shape[0]) == 2) != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_DLs_dim_0);
__PYX_ERR(0, 4009, __pyx_L1_error)
}
}
#endif
+4010: assert Ds.shape[1]==us.shape[1]==DLs.shape[1], "Args Ds, us, DLs 1"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = ((__pyx_v_Ds.shape[1]) == (__pyx_v_us.shape[1]));
if (__pyx_t_1) {
__pyx_t_1 = ((__pyx_v_us.shape[1]) == (__pyx_v_DLs.shape[1]));
}
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_Ds_us_DLs_1);
__PYX_ERR(0, 4010, __pyx_L1_error)
}
}
#endif
+4011: C0 = not hasattr(dL,'__iter__') and dL>0.
__pyx_t_1 = __Pyx_HasAttr(__pyx_v_dL, __pyx_n_s_iter); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 4011, __pyx_L1_error) __pyx_t_3 = (!(__pyx_t_1 != 0)); if (__pyx_t_3) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyObject_RichCompare(__pyx_v_dL, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4011, __pyx_L1_error) __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L4_bool_binop_done:; __pyx_v_C0 = __pyx_t_2; __pyx_t_2 = 0;
+4012: C1 = hasattr(dL,'__iter__') and len(dL)==Ds.shape[1] and np.all(dL>0.)
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_dL, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 4012, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L6_bool_binop_done; } __pyx_t_5 = PyObject_Length(__pyx_v_dL); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4012, __pyx_L1_error) __pyx_t_3 = (__pyx_t_5 == (__pyx_v_Ds.shape[1])); if (__pyx_t_3) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_all); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_v_dL, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4012, __pyx_L1_error) __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L6_bool_binop_done:; __pyx_v_C1 = __pyx_t_2; __pyx_t_2 = 0;
+4013: assert C0 or C1, "Arg dL must be >0.!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4013, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L9_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_C1); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4013, __pyx_L1_error)
__pyx_t_3 = __pyx_t_1;
__pyx_L9_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_dL_must_be_0);
__PYX_ERR(0, 4013, __pyx_L1_error)
}
}
#endif
+4014: assert dLMode.lower() in ['abs','rel'], "Arg dLMode in ['abs','rel']"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_dLMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4014, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_abs, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4014, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_rel, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4014, __pyx_L1_error)
__pyx_t_3 = __pyx_t_1;
__pyx_L11_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_dLMode_in_abs_rel);
__PYX_ERR(0, 4014, __pyx_L1_error)
}
}
#endif
+4015: assert method.lower() in ['sum','simps','romb'], "Arg method"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_method); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4015, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4015, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4015, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_romb, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4015, __pyx_L1_error)
__pyx_t_3 = __pyx_t_1;
__pyx_L13_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_method);
__PYX_ERR(0, 4015, __pyx_L1_error)
}
}
#endif
4016:
+4017: cdef unsigned int ii, jj, N, ND = Ds.shape[1]
__pyx_v_ND = (__pyx_v_Ds.shape[1]);
4018: cdef double kkk, D0, D1, D2, u0, u1, u2, dl0, dl
+4019: cdef np.ndarray[double,ndim=1] dLr = np.empty((ND,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ND); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4019, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4019, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dLr.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_dLr = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4019, __pyx_L1_error) } else {__pyx_pybuffernd_dLr.diminfo[0].strides = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dLr.diminfo[0].shape = __pyx_pybuffernd_dLr.rcbuffer->pybuffer.shape[0]; } } __pyx_t_9 = 0; __pyx_v_dLr = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
4020: cdef np.ndarray[double,ndim=1] kk
4021: cdef np.ndarray[double,ndim=2] pts
+4022: cdef list Pts=[0 for ii in range(0,ND)], k=[0 for ii in range(0,ND)]
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __pyx_v_ND; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_ii = __pyx_t_12; if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_int_0))) __PYX_ERR(0, 4022, __pyx_L1_error) } __pyx_v_Pts = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = __pyx_v_ND; __pyx_t_11 = __pyx_t_10; for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { __pyx_v_ii = __pyx_t_12; if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_int_0))) __PYX_ERR(0, 4022, __pyx_L1_error) } __pyx_v_k = ((PyObject*)__pyx_t_6); __pyx_t_6 = 0;
4023:
+4024: dLMode = dLMode.lower()
__pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_dLMode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4024, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_dLMode, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
+4025: method = method.lower()
__pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_method); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4025, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_method, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
4026: # Case with unique dL
+4027: if not hasattr(dL,'__iter__'):
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_dL, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 4027, __pyx_L1_error) __pyx_t_1 = ((!(__pyx_t_3 != 0)) != 0); if (__pyx_t_1) { /* … */ goto __pyx_L20; }
+4028: if dLMode=='rel':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_dLMode, __pyx_n_s_rel, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4028, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L21; }
+4029: N = <long>(Cceil(1./dL))
__pyx_t_6 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_v_dL, 1., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4029, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_N = ((long)ceil(__pyx_t_13));
+4030: if method=='sum':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4030, __pyx_L1_error) __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L22; }
+4031: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4032: dl0 = DLs[0,ii]
__pyx_t_14 = 0;
__pyx_t_15 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_14 * __pyx_v_DLs.strides[0]) )) + __pyx_t_15)) )));
+4033: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_16 = 1;
__pyx_t_17 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_16 * __pyx_v_DLs.strides[0]) )) + __pyx_t_17)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4034: dLr[ii] = dl
__pyx_t_18 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4035: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_19 * __pyx_v_Ds.strides[0]) )) + __pyx_t_20)) )));
__pyx_t_21 = 1;
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_21 * __pyx_v_Ds.strides[0]) )) + __pyx_t_22)) )));
__pyx_t_24 = 2;
__pyx_t_25 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_24 * __pyx_v_Ds.strides[0]) )) + __pyx_t_25)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4036: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_27 = 0;
__pyx_t_28 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_27 * __pyx_v_us.strides[0]) )) + __pyx_t_28)) )));
__pyx_t_29 = 1;
__pyx_t_30 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_29 * __pyx_v_us.strides[0]) )) + __pyx_t_30)) )));
__pyx_t_31 = 2;
__pyx_t_32 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_31 * __pyx_v_us.strides[0]) )) + __pyx_t_32)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4037: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4037, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4037, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4037, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4038: kk = np.empty((N,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4038, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4038, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4038, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4039: for jj in range(0,N):
__pyx_t_39 = __pyx_v_N;
__pyx_t_40 = __pyx_t_39;
for (__pyx_t_41 = 0; __pyx_t_41 < __pyx_t_40; __pyx_t_41+=1) {
__pyx_v_jj = __pyx_t_41;
+4040: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4041: kk[jj] = kkk
__pyx_t_42 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_42, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4042: pts[0,jj] = D0 + kkk*u0
__pyx_t_43 = 0;
__pyx_t_44 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_44, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4043: pts[1,jj] = D1 + kkk*u1
__pyx_t_45 = 1;
__pyx_t_46 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_46, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4044: pts[2,jj] = D2 + kkk*u2
__pyx_t_47 = 2;
__pyx_t_48 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_47, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_48, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4045: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4045, __pyx_L1_error)
+4046: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4046, __pyx_L1_error) }
+4047: elif method=='simps':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4047, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L22; }
+4048: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_49 = __pyx_v_N;
} else {
__pyx_t_49 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_49;
+4049: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4050: dl0 = DLs[0,ii]
__pyx_t_50 = 0;
__pyx_t_51 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_50 * __pyx_v_DLs.strides[0]) )) + __pyx_t_51)) )));
+4051: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_52 = 1;
__pyx_t_53 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_52 * __pyx_v_DLs.strides[0]) )) + __pyx_t_53)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4052: dLr[ii] = dl
__pyx_t_54 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_54, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4053: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_55 = 0;
__pyx_t_56 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_55 * __pyx_v_Ds.strides[0]) )) + __pyx_t_56)) )));
__pyx_t_57 = 1;
__pyx_t_58 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_57 * __pyx_v_Ds.strides[0]) )) + __pyx_t_58)) )));
__pyx_t_59 = 2;
__pyx_t_60 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_59 * __pyx_v_Ds.strides[0]) )) + __pyx_t_60)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4054: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_61 = 0;
__pyx_t_62 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_61 * __pyx_v_us.strides[0]) )) + __pyx_t_62)) )));
__pyx_t_63 = 1;
__pyx_t_64 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_63 * __pyx_v_us.strides[0]) )) + __pyx_t_64)) )));
__pyx_t_65 = 2;
__pyx_t_66 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_65 * __pyx_v_us.strides[0]) )) + __pyx_t_66)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4055: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4055, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4055, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4055, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4056: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4056, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4056, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4056, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+4057: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4058: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4059: kk[jj] = kkk
__pyx_t_68 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_68, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4060: pts[0,jj] = D0 + kkk*u0
__pyx_t_69 = 0;
__pyx_t_70 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_70, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4061: pts[1,jj] = D1 + kkk*u1
__pyx_t_71 = 1;
__pyx_t_72 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_71, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_72, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4062: pts[2,jj] = D2 + kkk*u2
__pyx_t_73 = 2;
__pyx_t_74 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_73, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_74, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4063: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4063, __pyx_L1_error)
+4064: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4064, __pyx_L1_error) }
4065:
4066: else:
+4067: N = 2**(<long>(Cceil(Clog2(<double>N))))
/*else*/ {
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4068: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4069: dl0 = DLs[0,ii]
__pyx_t_75 = 0;
__pyx_t_76 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_75 * __pyx_v_DLs.strides[0]) )) + __pyx_t_76)) )));
+4070: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_77 = 1;
__pyx_t_78 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_77 * __pyx_v_DLs.strides[0]) )) + __pyx_t_78)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4071: dLr[ii] = dl
__pyx_t_79 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_79, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4072: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_80 = 0;
__pyx_t_81 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_80 * __pyx_v_Ds.strides[0]) )) + __pyx_t_81)) )));
__pyx_t_82 = 1;
__pyx_t_83 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_82 * __pyx_v_Ds.strides[0]) )) + __pyx_t_83)) )));
__pyx_t_84 = 2;
__pyx_t_85 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_84 * __pyx_v_Ds.strides[0]) )) + __pyx_t_85)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4073: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_86 = 0;
__pyx_t_87 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_86 * __pyx_v_us.strides[0]) )) + __pyx_t_87)) )));
__pyx_t_88 = 1;
__pyx_t_89 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_88 * __pyx_v_us.strides[0]) )) + __pyx_t_89)) )));
__pyx_t_90 = 2;
__pyx_t_91 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_90 * __pyx_v_us.strides[0]) )) + __pyx_t_91)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4074: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4074, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4074, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4074, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4075: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4075, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4075, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4075, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4076: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4077: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4078: kk[jj] = kkk
__pyx_t_92 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4079: pts[0,jj] = D0 + kkk*u0
__pyx_t_93 = 0;
__pyx_t_94 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_93, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_94, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4080: pts[1,jj] = D1 + kkk*u1
__pyx_t_95 = 1;
__pyx_t_96 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_96, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4081: pts[2,jj] = D2 + kkk*u2
__pyx_t_97 = 2;
__pyx_t_98 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_97, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_98, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4082: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4082, __pyx_L1_error)
+4083: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4083, __pyx_L1_error) } } __pyx_L22:;
4084:
4085: else:
+4086: if method=='sum':
/*else*/ {
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4086, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_3 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L35;
}
+4087: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4088: dl0 = DLs[0,ii]
__pyx_t_99 = 0;
__pyx_t_100 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_99 * __pyx_v_DLs.strides[0]) )) + __pyx_t_100)) )));
4089: # Compute the number of intervals to satisfy the resolution
+4090: N = <long>(Cceil((DLs[1,ii]-dl0)/dL))
__pyx_t_101 = 1;
__pyx_t_102 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_101 * __pyx_v_DLs.strides[0]) )) + __pyx_t_102)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_v_dL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4090, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_13));
+4091: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_103 = 1;
__pyx_t_104 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_103 * __pyx_v_DLs.strides[0]) )) + __pyx_t_104)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4092: dLr[ii] = dl
__pyx_t_105 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_105, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4093: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_106 = 0;
__pyx_t_107 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_106 * __pyx_v_Ds.strides[0]) )) + __pyx_t_107)) )));
__pyx_t_108 = 1;
__pyx_t_109 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_108 * __pyx_v_Ds.strides[0]) )) + __pyx_t_109)) )));
__pyx_t_110 = 2;
__pyx_t_111 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_110 * __pyx_v_Ds.strides[0]) )) + __pyx_t_111)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4094: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_112 = 0;
__pyx_t_113 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_112 * __pyx_v_us.strides[0]) )) + __pyx_t_113)) )));
__pyx_t_114 = 1;
__pyx_t_115 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_114 * __pyx_v_us.strides[0]) )) + __pyx_t_115)) )));
__pyx_t_116 = 2;
__pyx_t_117 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_116 * __pyx_v_us.strides[0]) )) + __pyx_t_117)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4095: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4095, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4095, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4095, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4096: kk = np.empty((N,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4096, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4096, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4096, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4097: for jj in range(0,N):
__pyx_t_39 = __pyx_v_N;
__pyx_t_40 = __pyx_t_39;
for (__pyx_t_41 = 0; __pyx_t_41 < __pyx_t_40; __pyx_t_41+=1) {
__pyx_v_jj = __pyx_t_41;
+4098: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4099: kk[jj] = kkk
__pyx_t_118 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_118, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4100: pts[0,jj] = D0 + kkk*u0
__pyx_t_119 = 0;
__pyx_t_120 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_119, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_120, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4101: pts[1,jj] = D1 + kkk*u1
__pyx_t_121 = 1;
__pyx_t_122 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_121, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_122, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4102: pts[2,jj] = D2 + kkk*u2
__pyx_t_123 = 2;
__pyx_t_124 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_123, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_124, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4103: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4103, __pyx_L1_error)
+4104: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4104, __pyx_L1_error) }
4105:
+4106: elif method=='simps':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4106, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L35; }
+4107: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4108: dl0 = DLs[0,ii]
__pyx_t_125 = 0;
__pyx_t_126 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_125 * __pyx_v_DLs.strides[0]) )) + __pyx_t_126)) )));
4109: # Compute the number of intervals to satisfy the resolution
+4110: N = <long>(Cceil((DLs[1,ii]-dl0)/dL))
__pyx_t_127 = 1;
__pyx_t_128 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_127 * __pyx_v_DLs.strides[0]) )) + __pyx_t_128)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_v_dL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4110, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_13));
+4111: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_49 = __pyx_v_N;
} else {
__pyx_t_49 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_49;
+4112: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_129 = 1;
__pyx_t_130 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_129 * __pyx_v_DLs.strides[0]) )) + __pyx_t_130)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4113: dLr[ii] = dl
__pyx_t_131 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_131, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4114: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_132 = 0;
__pyx_t_133 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_132 * __pyx_v_Ds.strides[0]) )) + __pyx_t_133)) )));
__pyx_t_134 = 1;
__pyx_t_135 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_134 * __pyx_v_Ds.strides[0]) )) + __pyx_t_135)) )));
__pyx_t_136 = 2;
__pyx_t_137 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_136 * __pyx_v_Ds.strides[0]) )) + __pyx_t_137)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4115: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_138 = 0;
__pyx_t_139 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_138 * __pyx_v_us.strides[0]) )) + __pyx_t_139)) )));
__pyx_t_140 = 1;
__pyx_t_141 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_140 * __pyx_v_us.strides[0]) )) + __pyx_t_141)) )));
__pyx_t_142 = 2;
__pyx_t_143 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_142 * __pyx_v_us.strides[0]) )) + __pyx_t_143)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4116: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4116, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4116, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4116, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4117: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4117, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4117, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4117, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4118: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4119: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4120: kk[jj] = kkk
__pyx_t_144 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_144, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4121: pts[0,jj] = D0 + kkk*u0
__pyx_t_145 = 0;
__pyx_t_146 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_145, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_146, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4122: pts[1,jj] = D1 + kkk*u1
__pyx_t_147 = 1;
__pyx_t_148 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_147, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_148, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4123: pts[2,jj] = D2 + kkk*u2
__pyx_t_149 = 2;
__pyx_t_150 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_149, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_150, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4124: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4124, __pyx_L1_error)
+4125: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4125, __pyx_L1_error) }
4126:
4127: else:
+4128: for ii in range(0,ND):
/*else*/ {
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4129: dl0 = DLs[0,ii]
__pyx_t_151 = 0;
__pyx_t_152 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_151 * __pyx_v_DLs.strides[0]) )) + __pyx_t_152)) )));
4130: # Compute the number of intervals to satisfy the resolution
+4131: N = <long>(Cceil((DLs[1,ii]-dl0)/dL))
__pyx_t_153 = 1;
__pyx_t_154 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_153 * __pyx_v_DLs.strides[0]) )) + __pyx_t_154)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4131, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_v_dL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4131, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4131, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_13));
+4132: N = 2**(<long>(Cceil(Clog2(<double>N))))
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4133: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_155 = 1;
__pyx_t_156 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_155 * __pyx_v_DLs.strides[0]) )) + __pyx_t_156)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4134: dLr[ii] = dl
__pyx_t_157 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_157, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4135: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_158 = 0;
__pyx_t_159 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_158 * __pyx_v_Ds.strides[0]) )) + __pyx_t_159)) )));
__pyx_t_160 = 1;
__pyx_t_161 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_160 * __pyx_v_Ds.strides[0]) )) + __pyx_t_161)) )));
__pyx_t_162 = 2;
__pyx_t_163 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_162 * __pyx_v_Ds.strides[0]) )) + __pyx_t_163)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4136: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_164 = 0;
__pyx_t_165 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_164 * __pyx_v_us.strides[0]) )) + __pyx_t_165)) )));
__pyx_t_166 = 1;
__pyx_t_167 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_166 * __pyx_v_us.strides[0]) )) + __pyx_t_167)) )));
__pyx_t_168 = 2;
__pyx_t_169 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_168 * __pyx_v_us.strides[0]) )) + __pyx_t_169)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4137: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4137, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4137, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4137, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4138: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4138, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4138, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4138, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4139: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4140: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4141: kk[jj] = kkk
__pyx_t_170 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_170, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4142: pts[0,jj] = D0 + kkk*u0
__pyx_t_171 = 0;
__pyx_t_172 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_171, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_172, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4143: pts[1,jj] = D1 + kkk*u1
__pyx_t_173 = 1;
__pyx_t_174 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_173, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_174, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4144: pts[2,jj] = D2 + kkk*u2
__pyx_t_175 = 2;
__pyx_t_176 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_175, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_176, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4145: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4145, __pyx_L1_error)
+4146: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4146, __pyx_L1_error) } } __pyx_L35:; } __pyx_L21:;
4147:
4148: # Case with different resolution for each LOS
4149: else:
+4150: if dLMode=='rel':
/*else*/ {
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_dLMode, __pyx_n_s_rel, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4150, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_3 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L48;
}
+4151: if method=='sum':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4151, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L49; }
+4152: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4153: N = <long>(Cceil(1./dL[ii]))
__pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_t_7, 1., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4153, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_N = ((long)ceil(__pyx_t_13));
+4154: dl0 = DLs[0,ii]
__pyx_t_177 = 0;
__pyx_t_178 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_177 * __pyx_v_DLs.strides[0]) )) + __pyx_t_178)) )));
+4155: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_179 = 1;
__pyx_t_180 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_179 * __pyx_v_DLs.strides[0]) )) + __pyx_t_180)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4156: dLr[ii] = dl
__pyx_t_181 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_181, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4157: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_182 = 0;
__pyx_t_183 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_182 * __pyx_v_Ds.strides[0]) )) + __pyx_t_183)) )));
__pyx_t_184 = 1;
__pyx_t_185 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_184 * __pyx_v_Ds.strides[0]) )) + __pyx_t_185)) )));
__pyx_t_186 = 2;
__pyx_t_187 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_186 * __pyx_v_Ds.strides[0]) )) + __pyx_t_187)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4158: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_188 = 0;
__pyx_t_189 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_188 * __pyx_v_us.strides[0]) )) + __pyx_t_189)) )));
__pyx_t_190 = 1;
__pyx_t_191 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_190 * __pyx_v_us.strides[0]) )) + __pyx_t_191)) )));
__pyx_t_192 = 2;
__pyx_t_193 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_192 * __pyx_v_us.strides[0]) )) + __pyx_t_193)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4159: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4159, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4159, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4159, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4160: kk = np.empty((N,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4160, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4160, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4160, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4161: for jj in range(0,N):
__pyx_t_39 = __pyx_v_N;
__pyx_t_40 = __pyx_t_39;
for (__pyx_t_41 = 0; __pyx_t_41 < __pyx_t_40; __pyx_t_41+=1) {
__pyx_v_jj = __pyx_t_41;
+4162: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4163: kk[jj] = kkk
__pyx_t_194 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_194, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4164: pts[0,jj] = D0 + kkk*u0
__pyx_t_195 = 0;
__pyx_t_196 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_195, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_196, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4165: pts[1,jj] = D1 + kkk*u1
__pyx_t_197 = 1;
__pyx_t_198 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_197, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_198, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4166: pts[2,jj] = D2 + kkk*u2
__pyx_t_199 = 2;
__pyx_t_200 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_199, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_200, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4167: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4167, __pyx_L1_error)
+4168: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4168, __pyx_L1_error) }
+4169: elif method=='simps':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4169, __pyx_L1_error) __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L49; }
+4170: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4171: N = <long>(Cceil(1./dL[ii]))
__pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_t_7, 1., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4171, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_N = ((long)ceil(__pyx_t_13));
+4172: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_49 = __pyx_v_N;
} else {
__pyx_t_49 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_49;
+4173: dl0 = DLs[0,ii]
__pyx_t_201 = 0;
__pyx_t_202 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_201 * __pyx_v_DLs.strides[0]) )) + __pyx_t_202)) )));
+4174: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_203 = 1;
__pyx_t_204 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_203 * __pyx_v_DLs.strides[0]) )) + __pyx_t_204)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4175: dLr[ii] = dl
__pyx_t_205 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_205, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4176: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_206 = 0;
__pyx_t_207 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_206 * __pyx_v_Ds.strides[0]) )) + __pyx_t_207)) )));
__pyx_t_208 = 1;
__pyx_t_209 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_208 * __pyx_v_Ds.strides[0]) )) + __pyx_t_209)) )));
__pyx_t_210 = 2;
__pyx_t_211 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_210 * __pyx_v_Ds.strides[0]) )) + __pyx_t_211)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4177: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_212 = 0;
__pyx_t_213 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_212 * __pyx_v_us.strides[0]) )) + __pyx_t_213)) )));
__pyx_t_214 = 1;
__pyx_t_215 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_214 * __pyx_v_us.strides[0]) )) + __pyx_t_215)) )));
__pyx_t_216 = 2;
__pyx_t_217 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_216 * __pyx_v_us.strides[0]) )) + __pyx_t_217)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4178: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4178, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4178, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4178, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4178, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4179: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4179, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4179, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4179, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4180: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4181: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4182: kk[jj] = kkk
__pyx_t_218 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_218, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4183: pts[0,jj] = D0 + kkk*u0
__pyx_t_219 = 0;
__pyx_t_220 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_219, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_220, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4184: pts[1,jj] = D1 + kkk*u1
__pyx_t_221 = 1;
__pyx_t_222 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_221, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_222, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4185: pts[2,jj] = D2 + kkk*u2
__pyx_t_223 = 2;
__pyx_t_224 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_223, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_224, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4186: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4186, __pyx_L1_error)
+4187: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4187, __pyx_L1_error) }
4188:
4189: else:
+4190: for ii in range(0,ND):
/*else*/ {
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4191: N = <long>(Cceil(1./dL[ii]))
__pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_t_7, 1., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_N = ((long)ceil(__pyx_t_13));
+4192: N = 2**(<long>(Cceil(Clog2(<double>N))))
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4193: dl0 = DLs[0,ii]
__pyx_t_225 = 0;
__pyx_t_226 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_225 * __pyx_v_DLs.strides[0]) )) + __pyx_t_226)) )));
+4194: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_227 = 1;
__pyx_t_228 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_227 * __pyx_v_DLs.strides[0]) )) + __pyx_t_228)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4195: dLr[ii] = dl
__pyx_t_229 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_229, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4196: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_230 = 0;
__pyx_t_231 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_230 * __pyx_v_Ds.strides[0]) )) + __pyx_t_231)) )));
__pyx_t_232 = 1;
__pyx_t_233 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_232 * __pyx_v_Ds.strides[0]) )) + __pyx_t_233)) )));
__pyx_t_234 = 2;
__pyx_t_235 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_234 * __pyx_v_Ds.strides[0]) )) + __pyx_t_235)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4197: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_236 = 0;
__pyx_t_237 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_236 * __pyx_v_us.strides[0]) )) + __pyx_t_237)) )));
__pyx_t_238 = 1;
__pyx_t_239 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_238 * __pyx_v_us.strides[0]) )) + __pyx_t_239)) )));
__pyx_t_240 = 2;
__pyx_t_241 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_240 * __pyx_v_us.strides[0]) )) + __pyx_t_241)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4198: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4198, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4198, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4198, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4199: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4199, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4199, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4199, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4200: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4201: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4202: kk[jj] = kkk
__pyx_t_242 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_242, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4203: pts[0,jj] = D0 + kkk*u0
__pyx_t_243 = 0;
__pyx_t_244 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_243, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_244, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4204: pts[1,jj] = D1 + kkk*u1
__pyx_t_245 = 1;
__pyx_t_246 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_245, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_246, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4205: pts[2,jj] = D2 + kkk*u2
__pyx_t_247 = 2;
__pyx_t_248 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_247, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_248, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4206: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4206, __pyx_L1_error)
+4207: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4207, __pyx_L1_error) } } __pyx_L49:;
4208:
4209: else:
+4210: if method=='sum':
/*else*/ {
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4210, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_1 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L62;
}
+4211: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4212: dl0 = DLs[0,ii]
__pyx_t_249 = 0;
__pyx_t_250 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_249 * __pyx_v_DLs.strides[0]) )) + __pyx_t_250)) )));
4213: # Compute the number of intervals to satisfy the resolution
+4214: N = <long>(Cceil((DLs[1,ii]-dl0)/dL[ii]))
__pyx_t_251 = 1;
__pyx_t_252 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_251 * __pyx_v_DLs.strides[0]) )) + __pyx_t_252)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4214, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4214, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_13));
+4215: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_253 = 1;
__pyx_t_254 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_253 * __pyx_v_DLs.strides[0]) )) + __pyx_t_254)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4216: dLr[ii] = dl
__pyx_t_255 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_255, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4217: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_256 = 0;
__pyx_t_257 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_256 * __pyx_v_Ds.strides[0]) )) + __pyx_t_257)) )));
__pyx_t_258 = 1;
__pyx_t_259 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_258 * __pyx_v_Ds.strides[0]) )) + __pyx_t_259)) )));
__pyx_t_260 = 2;
__pyx_t_261 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_260 * __pyx_v_Ds.strides[0]) )) + __pyx_t_261)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4218: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_262 = 0;
__pyx_t_263 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_262 * __pyx_v_us.strides[0]) )) + __pyx_t_263)) )));
__pyx_t_264 = 1;
__pyx_t_265 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_264 * __pyx_v_us.strides[0]) )) + __pyx_t_265)) )));
__pyx_t_266 = 2;
__pyx_t_267 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_266 * __pyx_v_us.strides[0]) )) + __pyx_t_267)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4219: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4219, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4219, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4219, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4220: kk = np.empty((N,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4220, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4220, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4220, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+4221: for jj in range(0,N):
__pyx_t_39 = __pyx_v_N;
__pyx_t_40 = __pyx_t_39;
for (__pyx_t_41 = 0; __pyx_t_41 < __pyx_t_40; __pyx_t_41+=1) {
__pyx_v_jj = __pyx_t_41;
+4222: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4223: kk[jj] = kkk
__pyx_t_268 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_268, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4224: pts[0,jj] = D0 + kkk*u0
__pyx_t_269 = 0;
__pyx_t_270 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_269, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_270, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4225: pts[1,jj] = D1 + kkk*u1
__pyx_t_271 = 1;
__pyx_t_272 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_271, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_272, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4226: pts[2,jj] = D2 + kkk*u2
__pyx_t_273 = 2;
__pyx_t_274 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_273, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_274, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4227: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4227, __pyx_L1_error)
+4228: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4228, __pyx_L1_error) }
4229:
+4230: elif method=='simps':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4230, __pyx_L1_error) __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L62; }
+4231: for ii in range(0,ND):
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4232: dl0 = DLs[0,ii]
__pyx_t_275 = 0;
__pyx_t_276 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_275 * __pyx_v_DLs.strides[0]) )) + __pyx_t_276)) )));
4233: # Compute the number of intervals to satisfy the resolution
+4234: N = <long>(Cceil((DLs[1,ii]-dl0)/dL[ii]))
__pyx_t_277 = 1;
__pyx_t_278 = __pyx_v_ii;
__pyx_t_6 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_277 * __pyx_v_DLs.strides[0]) )) + __pyx_t_278)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4234, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4234, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_13));
+4235: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_49 = __pyx_v_N;
} else {
__pyx_t_49 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_49;
+4236: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_279 = 1;
__pyx_t_280 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_279 * __pyx_v_DLs.strides[0]) )) + __pyx_t_280)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4237: dLr[ii] = dl
__pyx_t_281 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_281, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4238: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_282 = 0;
__pyx_t_283 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_282 * __pyx_v_Ds.strides[0]) )) + __pyx_t_283)) )));
__pyx_t_284 = 1;
__pyx_t_285 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_284 * __pyx_v_Ds.strides[0]) )) + __pyx_t_285)) )));
__pyx_t_286 = 2;
__pyx_t_287 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_286 * __pyx_v_Ds.strides[0]) )) + __pyx_t_287)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4239: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_288 = 0;
__pyx_t_289 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_288 * __pyx_v_us.strides[0]) )) + __pyx_t_289)) )));
__pyx_t_290 = 1;
__pyx_t_291 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_290 * __pyx_v_us.strides[0]) )) + __pyx_t_291)) )));
__pyx_t_292 = 2;
__pyx_t_293 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_292 * __pyx_v_us.strides[0]) )) + __pyx_t_293)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4240: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4240, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4240, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4240, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4240, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4241: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4241, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4241, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4241, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4242: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4243: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4244: kk[jj] = kkk
__pyx_t_294 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_294, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4245: pts[0,jj] = D0 + kkk*u0
__pyx_t_295 = 0;
__pyx_t_296 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_295, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_296, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4246: pts[1,jj] = D1 + kkk*u1
__pyx_t_297 = 1;
__pyx_t_298 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_297, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_298, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4247: pts[2,jj] = D2 + kkk*u2
__pyx_t_299 = 2;
__pyx_t_300 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_299, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_300, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4248: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4248, __pyx_L1_error)
+4249: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4249, __pyx_L1_error) }
4250:
4251: else:
+4252: for ii in range(0,ND):
/*else*/ {
__pyx_t_10 = __pyx_v_ND;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4253: dl0 = DLs[0,ii]
__pyx_t_301 = 0;
__pyx_t_302 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_301 * __pyx_v_DLs.strides[0]) )) + __pyx_t_302)) )));
4254: # Compute the number of intervals to satisfy the resolution
+4255: N = <long>(Cceil((DLs[1,ii]-dl0)/dL[ii]))
__pyx_t_303 = 1;
__pyx_t_304 = __pyx_v_ii;
__pyx_t_4 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_303 * __pyx_v_DLs.strides[0]) )) + __pyx_t_304)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4255, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4255, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_13));
+4256: N = 2**(<long>(Cceil(Clog2(<double>N))))
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4257: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_305 = 1;
__pyx_t_306 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_305 * __pyx_v_DLs.strides[0]) )) + __pyx_t_306)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4258: dLr[ii] = dl
__pyx_t_307 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_dLr.rcbuffer->pybuffer.buf, __pyx_t_307, __pyx_pybuffernd_dLr.diminfo[0].strides) = __pyx_v_dl;
+4259: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_308 = 0;
__pyx_t_309 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_308 * __pyx_v_Ds.strides[0]) )) + __pyx_t_309)) )));
__pyx_t_310 = 1;
__pyx_t_311 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_310 * __pyx_v_Ds.strides[0]) )) + __pyx_t_311)) )));
__pyx_t_312 = 2;
__pyx_t_313 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_312 * __pyx_v_Ds.strides[0]) )) + __pyx_t_313)) )));
__pyx_v_D0 = __pyx_t_13;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4260: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_314 = 0;
__pyx_t_315 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_314 * __pyx_v_us.strides[0]) )) + __pyx_t_315)) )));
__pyx_t_316 = 1;
__pyx_t_317 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_316 * __pyx_v_us.strides[0]) )) + __pyx_t_317)) )));
__pyx_t_318 = 2;
__pyx_t_319 = __pyx_v_ii;
__pyx_t_13 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_318 * __pyx_v_us.strides[0]) )) + __pyx_t_319)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_13;
+4261: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4261, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4261, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4261, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4261, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+4262: kk = np.empty((N+1,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4262, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4262, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4262, __pyx_L1_error) __pyx_t_38 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kk.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_t_38, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kk.rcbuffer->pybuffer, (PyObject*)__pyx_v_kk, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_kk.diminfo[0].strides = __pyx_pybuffernd_kk.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kk.diminfo[0].shape = __pyx_pybuffernd_kk.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4262, __pyx_L1_error) } __pyx_t_38 = 0; __Pyx_XDECREF_SET(__pyx_v_kk, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4263: for jj in range(0,N+1):
__pyx_t_49 = (__pyx_v_N + 1);
__pyx_t_67 = __pyx_t_49;
for (__pyx_t_39 = 0; __pyx_t_39 < __pyx_t_67; __pyx_t_39+=1) {
__pyx_v_jj = __pyx_t_39;
+4264: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4265: kk[jj] = kkk
__pyx_t_320 = __pyx_v_jj;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kk.rcbuffer->pybuffer.buf, __pyx_t_320, __pyx_pybuffernd_kk.diminfo[0].strides) = __pyx_v_kkk;
+4266: pts[0,jj] = D0 + kkk*u0
__pyx_t_321 = 0;
__pyx_t_322 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_321, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_322, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4267: pts[1,jj] = D1 + kkk*u1
__pyx_t_323 = 1;
__pyx_t_324 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_323, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_324, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4268: pts[2,jj] = D2 + kkk*u2
__pyx_t_325 = 2;
__pyx_t_326 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_325, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_326, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4269: Pts[ii] = pts
if (unlikely(__Pyx_SetItemInt(__pyx_v_Pts, __pyx_v_ii, ((PyObject *)__pyx_v_pts), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4269, __pyx_L1_error)
+4270: k[ii] = kk
if (unlikely(__Pyx_SetItemInt(__pyx_v_k, __pyx_v_ii, ((PyObject *)__pyx_v_kk), unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 1, 0, 0) < 0)) __PYX_ERR(0, 4270, __pyx_L1_error) } } __pyx_L62:; } __pyx_L48:; } __pyx_L20:;
4271:
+4272: return Pts, k, dLr
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4272, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_Pts); __Pyx_GIVEREF(__pyx_v_Pts); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_Pts); __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_k); __Pyx_INCREF(((PyObject *)__pyx_v_dLr)); __Pyx_GIVEREF(((PyObject *)__pyx_v_dLr)); PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_dLr)); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
4273:
4274:
4275:
4276:
4277:
4278:
4279: ######################################################################
4280: # Signal calculation
4281: ######################################################################
4282:
4283:
+4284: cdef get_insp(ff):
static PyObject *__pyx_f_4tofu_4geom_5_GG03_get_insp(PyObject *__pyx_v_ff) {
PyObject *__pyx_v_out = NULL;
PyObject *__pyx_v_pars = NULL;
PyObject *__pyx_v_na = NULL;
PyObject *__pyx_v_kw = NULL;
PyObject *__pyx_v_nat = NULL;
PyObject *__pyx_v_nak = NULL;
PyObject *__pyx_v_pp = NULL;
PyObject *__pyx_v_ii = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("get_insp", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_AddTraceback("tofu.geom._GG03.get_insp", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_out);
__Pyx_XDECREF(__pyx_v_pars);
__Pyx_XDECREF(__pyx_v_na);
__Pyx_XDECREF(__pyx_v_kw);
__Pyx_XDECREF(__pyx_v_nat);
__Pyx_XDECREF(__pyx_v_nak);
__Pyx_XDECREF(__pyx_v_pp);
__Pyx_XDECREF(__pyx_v_ii);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
+4285: out = insp(ff)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_insp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_ff) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_ff); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4285, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_out = __pyx_t_1; __pyx_t_1 = 0;
+4286: if sys.version[0]=='3':
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_sys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_version); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4286, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_kp_s_3, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4286, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_4) { /* … */ goto __pyx_L3; }
+4287: pars = out.parameters.values()
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_values); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_pars = __pyx_t_1; __pyx_t_1 = 0;
+4288: na = np.sum([(pp.kind==pp.POSITIONAL_OR_KEYWORD
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_kind); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_POSITIONAL_OR_KEYWORD); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyObject_RichCompare(__pyx_t_9, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4288, __pyx_L1_error) if (__pyx_t_4) { __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; } else { __Pyx_INCREF(__pyx_t_11); __pyx_t_8 = __pyx_t_11; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; goto __pyx_L6_bool_binop_done; }
+4289: and pp.default is pp.empty) for pp in pars])
if (likely(PyList_CheckExact(__pyx_v_pars)) || PyTuple_CheckExact(__pyx_v_pars)) { __pyx_t_5 = __pyx_v_pars; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_pars); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4289, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_5))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4289, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4289, __pyx_L1_error) #else __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); #endif } } else { __pyx_t_8 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_8)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4289, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_8); } __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_8); __pyx_t_8 = 0; /* … */ __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_default); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_4 = (__pyx_t_11 == __pyx_t_10); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_8 = __pyx_t_10; __pyx_t_10 = 0; __pyx_L6_bool_binop_done:; if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_8))) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4288, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_na = __pyx_t_1; __pyx_t_1 = 0;
+4290: kw = [pp.name for pp in pars if (pp.kind==pp.POSITIONAL_OR_KEYWORD
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_v_pars)) || PyTuple_CheckExact(__pyx_v_pars)) { __pyx_t_2 = __pyx_v_pars; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_pars); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4290, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_2))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4290, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4290, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif } } else { __pyx_t_3 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_3)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4290, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_3); } __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_3); __pyx_t_3 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_kind); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); /* … */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_POSITIONAL_OR_KEYWORD); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_12) { } else { __pyx_t_4 = __pyx_t_12; goto __pyx_L11_bool_binop_done; } /* … */ if (__pyx_t_4) { __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 4290, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_kw = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4291: and pp.default is not pp.empty)]
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_default); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_pp, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_12 = (__pyx_t_8 != __pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_13 = (__pyx_t_12 != 0); __pyx_t_4 = __pyx_t_13; __pyx_L11_bool_binop_done:;
4292: else:
+4293: nat, nak = len(out.args), len(out.defaults)
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4293, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_defaults); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_6 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4293, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4293, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_v_nat = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_v_nak = __pyx_t_2;
__pyx_t_2 = 0;
+4294: na = nat-nak
__pyx_t_2 = PyNumber_Subtract(__pyx_v_nat, __pyx_v_nak); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_na = __pyx_t_2; __pyx_t_2 = 0;
+4295: kw = [out.args[ii] for ii in range(nat-1,na-1,-1)][::-1]
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_nat, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_na, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_5); __Pyx_INCREF(__pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_int_neg_1); __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0; __pyx_t_7 = NULL; } else { __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4295, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; for (;;) { if (likely(!__pyx_t_7)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4295, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } else { if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4295, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif } } else { __pyx_t_5 = __pyx_t_7(__pyx_t_8); if (unlikely(!__pyx_t_5)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 4295, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_5); } __Pyx_XDECREF_SET(__pyx_v_ii, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_ii); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_slice__21); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_kw = ((PyObject*)__pyx_t_8); __pyx_t_8 = 0; } __pyx_L3:;
+4296: return na, kw
__Pyx_XDECREF(__pyx_r); __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_na); __Pyx_GIVEREF(__pyx_v_na); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_na); __Pyx_INCREF(__pyx_v_kw); __Pyx_GIVEREF(__pyx_v_kw); PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_kw); __pyx_r = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L0;
4297:
4298:
4299:
+4300: def check_ff(ff, t=None, Ani=None, bool Vuniq=False):
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_53check_ff(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_53check_ff = {"check_ff", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_53check_ff, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_53check_ff(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_ff = 0;
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_Ani = 0;
PyBoolObject *__pyx_v_Vuniq = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_ff (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ff,&__pyx_n_s_t,&__pyx_n_s_Ani,&__pyx_n_s_Vuniq,0};
PyObject* values[4] = {0,0,0,0};
values[1] = ((PyObject *)Py_None);
values[2] = ((PyObject *)Py_None);
values[3] = (PyObject *)((PyBoolObject *)Py_False);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ff)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t);
if (value) { values[1] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ani);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Vuniq);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "check_ff") < 0)) __PYX_ERR(0, 4300, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ff = values[0];
__pyx_v_t = values[1];
__pyx_v_Ani = values[2];
__pyx_v_Vuniq = ((PyBoolObject *)values[3]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("check_ff", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4300, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.check_ff", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Vuniq), __pyx_ptype_7cpython_4bool_bool, 1, "Vuniq", 0))) __PYX_ERR(0, 4300, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_52check_ff(__pyx_self, __pyx_v_ff, __pyx_v_t, __pyx_v_Ani, __pyx_v_Vuniq);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_52check_ff(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ff, PyObject *__pyx_v_t, PyObject *__pyx_v_Ani, PyBoolObject *__pyx_v_Vuniq) {
PyBoolObject *__pyx_v_ani = 0;
PyObject *__pyx_v_stre = NULL;
PyObject *__pyx_v_na = NULL;
PyObject *__pyx_v_kw = NULL;
int __pyx_v_C;
PyObject *__pyx_v_Pts = NULL;
PyObject *__pyx_v_NP = NULL;
PyObject *__pyx_v_out = NULL;
PyObject *__pyx_v_Str = NULL;
Py_ssize_t __pyx_v_nt;
PyObject *__pyx_v_Vect = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("check_ff", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("tofu.geom._GG03.check_ff", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_ani);
__Pyx_XDECREF(__pyx_v_stre);
__Pyx_XDECREF(__pyx_v_na);
__Pyx_XDECREF(__pyx_v_kw);
__Pyx_XDECREF(__pyx_v_Pts);
__Pyx_XDECREF(__pyx_v_NP);
__Pyx_XDECREF(__pyx_v_out);
__Pyx_XDECREF(__pyx_v_Str);
__Pyx_XDECREF(__pyx_v_Vect);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__210 = PyTuple_Pack(15, __pyx_n_s_ff, __pyx_n_s_t, __pyx_n_s_Ani, __pyx_n_s_Vuniq, __pyx_n_s_ani, __pyx_n_s_stre, __pyx_n_s_na, __pyx_n_s_kw, __pyx_n_s_C, __pyx_n_s_Pts, __pyx_n_s_NP, __pyx_n_s_out, __pyx_n_s_Str, __pyx_n_s_nt, __pyx_n_s_Vect); if (unlikely(!__pyx_tuple__210)) __PYX_ERR(0, 4300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__210);
__Pyx_GIVEREF(__pyx_tuple__210);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_53check_ff, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4300, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_check_ff, __pyx_t_1) < 0) __PYX_ERR(0, 4300, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(4, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__210, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_check_ff, 4300, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(0, 4300, __pyx_L1_error)
4301: cdef bool ani
+4302: stre = "Input emissivity function (ff)"
__Pyx_INCREF(__pyx_kp_s_Input_emissivity_function_ff);
__pyx_v_stre = __pyx_kp_s_Input_emissivity_function_ff;
+4303: assert hasattr(ff,'__call__'), stre+" must be a callable (function)!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_HasAttr(__pyx_v_ff, __pyx_n_s_call); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 4303, __pyx_L1_error)
if (unlikely(!(__pyx_t_1 != 0))) {
__pyx_t_2 = PyNumber_Add(__pyx_v_stre, __pyx_kp_s_must_be_a_callable_function); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyTuple_Pack(1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4303, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__PYX_ERR(0, 4303, __pyx_L1_error)
}
}
#endif
+4304: na, kw = get_insp(ff)
__pyx_t_3 = __pyx_f_4tofu_4geom_5_GG03_get_insp(__pyx_v_ff); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { PyObject* sequence = __pyx_t_3; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 2)) { if (size > 2) __Pyx_RaiseTooManyValuesError(2); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4304, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_4 = PyList_GET_ITEM(sequence, 1); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); #else __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } else { Py_ssize_t index = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_2); index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; __Pyx_GOTREF(__pyx_t_4); if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(0, 4304, __pyx_L1_error) __pyx_t_6 = NULL; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; goto __pyx_L4_unpacking_done; __pyx_L3_unpacking_failed:; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_6 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4304, __pyx_L1_error) __pyx_L4_unpacking_done:; } __pyx_v_na = __pyx_t_2; __pyx_t_2 = 0; __pyx_v_kw = __pyx_t_4; __pyx_t_4 = 0;
+4305: assert na==1, stre+" must take only one positional argument: ff(Pts)!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_na, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
if (unlikely(!__pyx_t_1)) {
__pyx_t_3 = PyNumber_Add(__pyx_v_stre, __pyx_kp_s_must_take_only_one_positional_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyTuple_Pack(1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4305, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_4);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__PYX_ERR(0, 4305, __pyx_L1_error)
}
}
#endif
+4306: assert 't' in kw, stre+" must have kwarg 't=None' for time vector!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_t, __pyx_v_kw, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4306, __pyx_L1_error)
if (unlikely(!(__pyx_t_1 != 0))) {
__pyx_t_4 = PyNumber_Add(__pyx_v_stre, __pyx_kp_s_must_have_kwarg_t_None_for_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_3 = PyTuple_Pack(1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4306, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
PyErr_SetObject(PyExc_AssertionError, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__PYX_ERR(0, 4306, __pyx_L1_error)
}
}
#endif
+4307: C = type(t) in [int,float,np.int64,np.float64] or hasattr(t,'__iter__')
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_t))); __pyx_t_3 = ((PyObject *)Py_TYPE(__pyx_v_t)); __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyInt_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4307, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L7_bool_binop_done; } __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_3), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4307, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L7_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_int64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_3), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!__pyx_t_8) { } else { __pyx_t_7 = __pyx_t_8; goto __pyx_L7_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float64); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyObject_RichCompare(((PyObject *)__pyx_t_3), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4307, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_7 = __pyx_t_8; __pyx_L7_bool_binop_done:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_8 = (__pyx_t_7 != 0); if (!__pyx_t_8) { } else { __pyx_t_1 = __pyx_t_8; goto __pyx_L5_bool_binop_done; } __pyx_t_8 = __Pyx_HasAttr(__pyx_v_t, __pyx_n_s_iter); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 4307, __pyx_L1_error) __pyx_t_7 = (__pyx_t_8 != 0); __pyx_t_1 = __pyx_t_7; __pyx_L5_bool_binop_done:; __pyx_v_C = __pyx_t_1;
+4308: assert t is None or C, "Arg t must be None, a scalar or an iterable!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_7 = (__pyx_v_t == Py_None);
__pyx_t_8 = (__pyx_t_7 != 0);
if (!__pyx_t_8) {
} else {
__pyx_t_1 = __pyx_t_8;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_8 = (__pyx_v_C != 0);
__pyx_t_1 = __pyx_t_8;
__pyx_L11_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_t_must_be_None_a_scalar_or_a);
__PYX_ERR(0, 4308, __pyx_L1_error)
}
}
#endif
+4309: Pts = np.array([[1,2],[3,4],[5,6]])
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_2); __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyList_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_INCREF(__pyx_int_4); __Pyx_GIVEREF(__pyx_int_4); PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_4); __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_INCREF(__pyx_int_5); __Pyx_GIVEREF(__pyx_int_5); PyList_SET_ITEM(__pyx_t_9, 0, __pyx_int_5); __Pyx_INCREF(__pyx_int_6); __Pyx_GIVEREF(__pyx_int_6); PyList_SET_ITEM(__pyx_t_9, 1, __pyx_int_6); __pyx_t_10 = PyList_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_10, 2, __pyx_t_9); __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Pts = __pyx_t_3; __pyx_t_3 = 0;
+4310: NP = Pts.shape[1]
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_NP = __pyx_t_2; __pyx_t_2 = 0;
+4311: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
goto __pyx_L18_try_end;
__pyx_L13_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
goto __pyx_L1_error;
__pyx_L14_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
__pyx_L18_try_end:;
}
+4312: out = ff(Pts, t=t)
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4312, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_Pts); __Pyx_GIVEREF(__pyx_v_Pts); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_Pts); __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4312, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4312, __pyx_L13_error) __pyx_t_10 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4312, __pyx_L13_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_out = __pyx_t_10; __pyx_t_10 = 0;
+4313: except Exception:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_14) { __Pyx_AddTraceback("tofu.geom._GG03.check_ff", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_3, &__pyx_t_2) < 0) __PYX_ERR(0, 4313, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_2);
+4314: Str = stre+" must take one positional arg: a (3,N) np.ndarray"
__pyx_t_9 = PyNumber_Add(__pyx_v_stre, __pyx_kp_s_must_take_one_positional_arg_a); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4314, __pyx_L15_except_error) __Pyx_GOTREF(__pyx_t_9); __pyx_v_Str = __pyx_t_9; __pyx_t_9 = 0;
+4315: assert False, Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
__pyx_t_9 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4315, __pyx_L15_except_error)
__Pyx_GOTREF(__pyx_t_9);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__PYX_ERR(0, 4315, __pyx_L15_except_error)
}
}
#endif
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L14_exception_handled;
}
goto __pyx_L15_except_error;
__pyx_L15_except_error:;
+4316: if hasattr(t,'__iter__'):
__pyx_t_1 = __Pyx_HasAttr(__pyx_v_t, __pyx_n_s_iter); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 4316, __pyx_L1_error) __pyx_t_8 = (__pyx_t_1 != 0); if (__pyx_t_8) { /* … */ goto __pyx_L21; }
+4317: nt = len(t)
__pyx_t_15 = PyObject_Length(__pyx_v_t); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4317, __pyx_L1_error) __pyx_v_nt = __pyx_t_15;
4318: Str = ("ff(Pts,t=t), where Pts is a (3,N) np.array and "
+4319: +"t a len()=nt iterable, must return a (nt,N) np.ndarray!")
__pyx_t_2 = PyNumber_Add(__pyx_kp_s_ff_Pts_t_t_where_Pts_is_a_3_N_np, __pyx_kp_s_t_a_len_nt_iterable_must_return); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_XDECREF_SET(__pyx_v_Str, __pyx_t_2); __pyx_t_2 = 0;
+4320: assert type(out) is np.ndarray and out.shape==(nt,NP), Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4320, __pyx_L1_error) }
__pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_out)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_7 = (__pyx_t_1 != 0);
if (__pyx_t_7) {
} else {
__pyx_t_8 = __pyx_t_7;
goto __pyx_L22_bool_binop_done;
}
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4320, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyInt_FromSsize_t(__pyx_v_nt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);
__Pyx_INCREF(__pyx_v_NP);
__Pyx_GIVEREF(__pyx_v_NP);
PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_NP);
__pyx_t_3 = 0;
__pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_8 = __pyx_t_7;
__pyx_L22_bool_binop_done:;
if (unlikely(!__pyx_t_8)) {
__pyx_t_3 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4320, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_3);
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__PYX_ERR(0, 4320, __pyx_L1_error)
}
}
#endif
4321: else:
+4322: Str = ("When fed a (3,N) np.array only, or if t is a scalar,"
/*else*/ {
+4323: +" ff must return a (N,) np.ndarray!")
__pyx_t_3 = PyNumber_Add(__pyx_kp_s_When_fed_a_3_N_np_array_only_or, __pyx_kp_s_ff_must_return_a_N_np_ndarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_XDECREF_SET(__pyx_v_Str, __pyx_t_3); __pyx_t_3 = 0;
+4324: assert type(out) is np.ndarray and out.shape==(NP,), Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4324, __pyx_L1_error) }
__pyx_t_7 = (((PyObject *)Py_TYPE(__pyx_v_out)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_1 = (__pyx_t_7 != 0);
if (__pyx_t_1) {
} else {
__pyx_t_8 = __pyx_t_1;
goto __pyx_L24_bool_binop_done;
}
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4324, __pyx_L1_error) }
__pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__Pyx_INCREF(__pyx_v_NP);
__Pyx_GIVEREF(__pyx_v_NP);
PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_v_NP);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_8 = __pyx_t_1;
__pyx_L24_bool_binop_done:;
if (unlikely(!__pyx_t_8)) {
__pyx_t_2 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4324, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__PYX_ERR(0, 4324, __pyx_L1_error)
}
}
#endif
}
__pyx_L21:;
4325:
+4326: ani = ('Vect' in kw) if Ani is None else Ani
__pyx_t_8 = (__pyx_v_Ani == Py_None);
if ((__pyx_t_8 != 0)) {
__pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_Vect, __pyx_v_kw, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4326, __pyx_L1_error)
__pyx_t_10 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4326, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (!(likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_7cpython_4bool_bool)))) __PYX_ERR(0, 4326, __pyx_L1_error)
__pyx_t_2 = __pyx_t_10;
__pyx_t_10 = 0;
} else {
if (!(likely(((__pyx_v_Ani) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_Ani, __pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 4326, __pyx_L1_error)
__Pyx_INCREF(__pyx_v_Ani);
__pyx_t_2 = __pyx_v_Ani;
}
__pyx_v_ani = ((PyBoolObject *)__pyx_t_2);
__pyx_t_2 = 0;
+4327: if ani:
__pyx_t_8 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4327, __pyx_L1_error) if (__pyx_t_8) { /* … */ }
+4328: Str = "If Ani=True, ff must take a keyword argument 'Vect=None'!"
__Pyx_INCREF(__pyx_kp_s_If_Ani_True_ff_must_take_a_keywo); __Pyx_DECREF_SET(__pyx_v_Str, __pyx_kp_s_If_Ani_True_ff_must_take_a_keywo);
+4329: assert 'Vect' in kw, Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_Vect, __pyx_v_kw, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4329, __pyx_L1_error)
if (unlikely(!(__pyx_t_8 != 0))) {
__pyx_t_2 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4329, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__PYX_ERR(0, 4329, __pyx_L1_error)
}
}
#endif
+4330: Vect = np.array([1,2,3]) if Vuniq else np.ones(Pts.shape)
__pyx_t_8 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_Vuniq)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4330, __pyx_L1_error) if (__pyx_t_8) { __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_int_1); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_int_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyList_SET_ITEM(__pyx_t_3, 2, __pyx_int_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_9, function); } } __pyx_t_10 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_2 = __pyx_t_10; __pyx_t_10 = 0; } else { __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_Pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_10 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_10; __pyx_t_10 = 0; } __pyx_v_Vect = __pyx_t_2; __pyx_t_2 = 0;
+4331: try:
{
/*try:*/ {
/* … */
}
__Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
__Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
goto __pyx_L32_try_end;
__pyx_L27_error:;
__Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
goto __pyx_L1_error;
__pyx_L28_exception_handled:;
__Pyx_XGIVEREF(__pyx_t_13);
__Pyx_XGIVEREF(__pyx_t_12);
__Pyx_XGIVEREF(__pyx_t_11);
__Pyx_ExceptionReset(__pyx_t_13, __pyx_t_12, __pyx_t_11);
__pyx_L32_try_end:;
}
+4332: out = ff(Pts, Vect=Vect, t=t)
__pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4332, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_Pts); __Pyx_GIVEREF(__pyx_v_Pts); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_Pts); __pyx_t_10 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4332, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_10); if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_Vect, __pyx_v_Vect) < 0) __PYX_ERR(0, 4332, __pyx_L27_error) if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4332, __pyx_L27_error) __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_2, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4332, __pyx_L27_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __Pyx_XDECREF_SET(__pyx_v_out, __pyx_t_3); __pyx_t_3 = 0;
+4333: except Exception:
__pyx_t_14 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_14) { __Pyx_AddTraceback("tofu.geom._GG03.check_ff", __pyx_clineno, __pyx_lineno, __pyx_filename); if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_10, &__pyx_t_2) < 0) __PYX_ERR(0, 4333, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GOTREF(__pyx_t_10); __Pyx_GOTREF(__pyx_t_2);
+4334: Str = "If Ani=True, ff must handle multiple points Pts (3,N) with "
__Pyx_INCREF(__pyx_kp_s_If_Ani_True_ff_must_handle_multi); __Pyx_DECREF_SET(__pyx_v_Str, __pyx_kp_s_If_Ani_True_ff_must_handle_multi);
+4335: if Vuniq:
__pyx_t_8 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_Vuniq)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4335, __pyx_L29_except_error) if (__pyx_t_8) { /* … */ goto __pyx_L35; }
+4336: Str += "a unique common vector (Vect as a len()=3 iterable)"
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_Str, __pyx_kp_s_a_unique_common_vector_Vect_as_a); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4336, __pyx_L29_except_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF_SET(__pyx_v_Str, __pyx_t_9); __pyx_t_9 = 0;
4337: else:
+4338: Str += "multiple vectors (Vect as a (3,N) np.ndarray)"
/*else*/ {
__pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_Str, __pyx_kp_s_multiple_vectors_Vect_as_a_3_N_n); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4338, __pyx_L29_except_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_DECREF_SET(__pyx_v_Str, __pyx_t_9);
__pyx_t_9 = 0;
}
__pyx_L35:;
+4339: assert False, Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
__pyx_t_9 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4339, __pyx_L29_except_error)
__Pyx_GOTREF(__pyx_t_9);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_9);
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
__PYX_ERR(0, 4339, __pyx_L29_except_error)
}
}
#endif
__Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
__Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
goto __pyx_L28_exception_handled;
}
goto __pyx_L29_except_error;
__pyx_L29_except_error:;
+4340: if hasattr(t,'__iter__'):
__pyx_t_8 = __Pyx_HasAttr(__pyx_v_t, __pyx_n_s_iter); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(0, 4340, __pyx_L1_error) __pyx_t_1 = (__pyx_t_8 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L36; }
4341: Str = ("If Ani=True, ff must return a (nt,N) np.ndarray when "
+4342: +"Pts is (3,N), Vect is provided and t is (nt,)")
__pyx_t_2 = PyNumber_Add(__pyx_kp_s_If_Ani_True_ff_must_return_a_nt, __pyx_kp_s_Pts_is_3_N_Vect_is_provided_and); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_Str, __pyx_t_2); __pyx_t_2 = 0;
+4343: assert type(out) is np.ndarray and out.shape==(nt,NP), Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4343, __pyx_L1_error) }
__pyx_t_8 = (((PyObject *)Py_TYPE(__pyx_v_out)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_7 = (__pyx_t_8 != 0);
if (__pyx_t_7) {
} else {
__pyx_t_1 = __pyx_t_7;
goto __pyx_L37_bool_binop_done;
}
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4343, __pyx_L1_error) }
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_10 = PyInt_FromSsize_t(__pyx_v_nt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);
__Pyx_INCREF(__pyx_v_NP);
__Pyx_GIVEREF(__pyx_v_NP);
PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_NP);
__pyx_t_10 = 0;
__pyx_t_10 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4343, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4343, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_t_1 = __pyx_t_7;
__pyx_L37_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
__pyx_t_10 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4343, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_10);
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__PYX_ERR(0, 4343, __pyx_L1_error)
}
}
#endif
4344: else:
+4345: Str = ("If Ani=True, ff must return a (nt,N) np.ndarray when "
/*else*/ {
+4346: +"Pts is (3,N), Vect is provided and t is (nt,)")
__pyx_t_10 = PyNumber_Add(__pyx_kp_s_If_Ani_True_ff_must_return_a_nt, __pyx_kp_s_Pts_is_3_N_Vect_is_provided_and); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF_SET(__pyx_v_Str, __pyx_t_10); __pyx_t_10 = 0;
+4347: assert type(out) is np.ndarray and out.shape==(NP,), Str
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4347, __pyx_L1_error) }
__pyx_t_7 = (((PyObject *)Py_TYPE(__pyx_v_out)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_8 = (__pyx_t_7 != 0);
if (__pyx_t_8) {
} else {
__pyx_t_1 = __pyx_t_8;
goto __pyx_L39_bool_binop_done;
}
if (unlikely(!__pyx_v_out)) { __Pyx_RaiseUnboundLocalError("out"); __PYX_ERR(0, 4347, __pyx_L1_error) }
__pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_out, __pyx_n_s_shape); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__Pyx_INCREF(__pyx_v_NP);
__Pyx_GIVEREF(__pyx_v_NP);
PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_NP);
__pyx_t_2 = PyObject_RichCompare(__pyx_t_10, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4347, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
__pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 4347, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_1 = __pyx_t_8;
__pyx_L39_bool_binop_done:;
if (unlikely(!__pyx_t_1)) {
__pyx_t_2 = PyTuple_Pack(1, __pyx_v_Str); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4347, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
PyErr_SetObject(PyExc_AssertionError, __pyx_t_2);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__PYX_ERR(0, 4347, __pyx_L1_error)
}
}
#endif
}
__pyx_L36:;
+4348: return ani
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ani)); __pyx_r = ((PyObject *)__pyx_v_ani); goto __pyx_L0;
4349:
4350:
4351:
+4352: def integrate1d(y, double dx, t=None, str method='sum'):
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_55integrate1d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_54integrate1d[] = " Generic integration method ['sum','simps','romb']\n\n Not used internally\n Useful when the sampling points need to be interpolated via equilibrium\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_55integrate1d = {"integrate1d", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_55integrate1d, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_54integrate1d};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_55integrate1d(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_y = 0;
double __pyx_v_dx;
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_method = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("integrate1d (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_y,&__pyx_n_s_dx,&__pyx_n_s_t,&__pyx_n_s_method,0};
PyObject* values[4] = {0,0,0,0};
values[2] = ((PyObject *)Py_None);
values[3] = ((PyObject*)__pyx_n_s_sum);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dx)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("integrate1d", 0, 2, 4, 1); __PYX_ERR(0, 4352, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t);
if (value) { values[2] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_method);
if (value) { values[3] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "integrate1d") < 0)) __PYX_ERR(0, 4352, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_y = values[0];
__pyx_v_dx = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dx == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4352, __pyx_L3_error)
__pyx_v_t = values[2];
__pyx_v_method = ((PyObject*)values[3]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("integrate1d", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4352, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.integrate1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyString_Type), 1, "method", 1))) __PYX_ERR(0, 4352, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_54integrate1d(__pyx_self, __pyx_v_y, __pyx_v_dx, __pyx_v_t, __pyx_v_method);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_54integrate1d(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_y, double __pyx_v_dx, PyObject *__pyx_v_t, PyObject *__pyx_v_method) {
unsigned int __pyx_v_nt;
unsigned int __pyx_v_axm;
PyObject *__pyx_v_ind = NULL;
PyArrayObject *__pyx_v_s = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_s;
__Pyx_Buffer __pyx_pybuffer_s;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("integrate1d", 0);
__Pyx_INCREF(__pyx_v_y);
__pyx_pybuffer_s.pybuffer.buf = NULL;
__pyx_pybuffer_s.refcount = 0;
__pyx_pybuffernd_s.data = NULL;
__pyx_pybuffernd_s.rcbuffer = &__pyx_pybuffer_s;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_s.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.integrate1d", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_s.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_ind);
__Pyx_XDECREF((PyObject *)__pyx_v_s);
__Pyx_XDECREF(__pyx_v_y);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__212 = PyTuple_Pack(8, __pyx_n_s_y, __pyx_n_s_dx, __pyx_n_s_t, __pyx_n_s_method, __pyx_n_s_nt, __pyx_n_s_axm, __pyx_n_s_ind, __pyx_n_s_s); if (unlikely(!__pyx_tuple__212)) __PYX_ERR(0, 4352, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__212);
__Pyx_GIVEREF(__pyx_tuple__212);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_55integrate1d, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4352, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_integrate1d, __pyx_t_1) < 0) __PYX_ERR(0, 4352, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__213 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__212, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_integrate1d, 4352, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__213)) __PYX_ERR(0, 4352, __pyx_L1_error)
4353: """ Generic integration method ['sum','simps','romb']
4354:
4355: Not used internally
4356: Useful when the sampling points need to be interpolated via equilibrium
4357: """
4358: cdef unsigned int nt, axm
+4359: if t is None or not hasattr(t,'__iter__'):
__pyx_t_2 = (__pyx_v_t == Py_None);
__pyx_t_3 = (__pyx_t_2 != 0);
if (!__pyx_t_3) {
} else {
__pyx_t_1 = __pyx_t_3;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_t, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 4359, __pyx_L1_error)
__pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+4360: nt = 1
__pyx_v_nt = 1;
+4361: axm = 0
__pyx_v_axm = 0;
4362: else:
+4363: nt = len(t)
/*else*/ {
__pyx_t_4 = PyObject_Length(__pyx_v_t); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4363, __pyx_L1_error)
__pyx_v_nt = __pyx_t_4;
+4364: axm = 1
__pyx_v_axm = 1; } __pyx_L3:;
+4365: ind = np.isnan(y)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_isnan); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_y) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_y); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_ind = __pyx_t_5; __pyx_t_5 = 0;
+4366: if np.any(ind):
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_any); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_ind) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_ind); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4366, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4366, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_1) { /* … */ }
+4367: y = y.copy()
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_copy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4367, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_5); __pyx_t_5 = 0;
+4368: y[ind] = 0.
if (unlikely(PyObject_SetItem(__pyx_v_y, __pyx_v_ind, __pyx_float_0_) < 0)) __PYX_ERR(0, 4368, __pyx_L1_error)
4369:
+4370: cdef np.ndarray[double,ndim=1] s = np.empty((nt,),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nt); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4370, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4370, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4370, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_s = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_s.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4370, __pyx_L1_error) } else {__pyx_pybuffernd_s.diminfo[0].strides = __pyx_pybuffernd_s.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_s.diminfo[0].shape = __pyx_pybuffernd_s.rcbuffer->pybuffer.shape[0]; } } __pyx_t_9 = 0; __pyx_v_s = ((PyArrayObject *)__pyx_t_8); __pyx_t_8 = 0;
4371:
+4372: if method=='sum':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4372, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* … */ goto __pyx_L7; }
+4373: s = np.sum(y, axis=axm)*dx
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sum); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_y); __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_axis, __pyx_t_6) < 0) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = PyNumber_Multiply(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4373, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_8); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_s.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_v_s, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_11, __pyx_t_12, __pyx_t_13); } __pyx_t_11 = __pyx_t_12 = __pyx_t_13 = 0; } __pyx_pybuffernd_s.diminfo[0].strides = __pyx_pybuffernd_s.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_s.diminfo[0].shape = __pyx_pybuffernd_s.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4373, __pyx_L1_error) } __pyx_t_9 = 0; __Pyx_DECREF_SET(__pyx_v_s, ((PyArrayObject *)__pyx_t_8)); __pyx_t_8 = 0;
+4374: elif method=='simps':
__pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4374, __pyx_L1_error) __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L7; }
+4375: s = scpintg.simps(y, x=None, dx=dx, axis=axm)
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_simps); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_y); __pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_x, Py_None) < 0) __PYX_ERR(0, 4375, __pyx_L1_error) __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dx, __pyx_t_7) < 0) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_t_7) < 0) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4375, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_s.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_13, &__pyx_t_12, &__pyx_t_11); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_v_s, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_11); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_13, __pyx_t_12, __pyx_t_11); } __pyx_t_13 = __pyx_t_12 = __pyx_t_11 = 0; } __pyx_pybuffernd_s.diminfo[0].strides = __pyx_pybuffernd_s.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_s.diminfo[0].shape = __pyx_pybuffernd_s.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4375, __pyx_L1_error) } __pyx_t_9 = 0; __Pyx_DECREF_SET(__pyx_v_s, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4376: elif method=='romb':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_romb, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4376, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (likely(__pyx_t_2)) { /* … */ goto __pyx_L7; }
+4377: s = scpintg.romb(y, dx=dx, axis=axm, show=False)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_romb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_y); __pyx_t_8 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_dx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dx, __pyx_t_5) < 0) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_axis, __pyx_t_5) < 0) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_show, Py_False) < 0) __PYX_ERR(0, 4377, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4377, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_s.rcbuffer->pybuffer); __pyx_t_10 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack); if (unlikely(__pyx_t_10 < 0)) { PyErr_Fetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_s.rcbuffer->pybuffer, (PyObject*)__pyx_v_s, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_11, __pyx_t_12, __pyx_t_13); } __pyx_t_11 = __pyx_t_12 = __pyx_t_13 = 0; } __pyx_pybuffernd_s.diminfo[0].strides = __pyx_pybuffernd_s.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_s.diminfo[0].shape = __pyx_pybuffernd_s.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 4377, __pyx_L1_error) } __pyx_t_9 = 0; __Pyx_DECREF_SET(__pyx_v_s, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0;
4378: else:
+4379: raise Exception("Arg method must be in ['sum','simps','romb']")
/*else*/ {
__pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__85, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4379, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_Raise(__pyx_t_5, 0, 0, 0);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__PYX_ERR(0, 4379, __pyx_L1_error)
}
__pyx_L7:;
/* … */
__pyx_tuple__85 = PyTuple_Pack(1, __pyx_kp_s_Arg_method_must_be_in_sum_simps); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 4379, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__85);
__Pyx_GIVEREF(__pyx_tuple__85);
+4380: return s
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_s)); __pyx_r = ((PyObject *)__pyx_v_s); goto __pyx_L0;
4381:
4382:
4383:
4384:
4385: @cython.cdivision(True)
4386: @cython.wraparound(False)
4387: @cython.boundscheck(False)
4388: @cython.initializedcheck(False)
4389: @cython.profile(False)
4390: @cython.linetrace(False)
4391: @cython.binding(False)
+4392: def LOS_calc_signal(ff, double[:,::1] Ds, double[:,::1] us, dL,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_57LOS_calc_signal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_56LOS_calc_signal[] = " Return the sampled line, with the specified method\n\n 'linspace': return the N+1 edges, including the first and last point\n 'sum' : return N segments centers\n 'simps': return N+1 egdes, N even (for scipy.integrate.simps)\n 'romb' : return N+1 edges, N+1 = 2**k+1 (for scipy.integrate.romb)\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_57LOS_calc_signal = {"LOS_calc_signal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_57LOS_calc_signal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_56LOS_calc_signal};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_57LOS_calc_signal(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_ff = 0;
__Pyx_memviewslice __pyx_v_Ds = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_us = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_dL = 0;
__Pyx_memviewslice __pyx_v_DLs = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_t = 0;
PyObject *__pyx_v_Ani = 0;
PyObject *__pyx_v_fkwdargs = 0;
PyObject *__pyx_v_dLMode = 0;
PyObject *__pyx_v_method = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_calc_signal (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ff,&__pyx_n_s_Ds,&__pyx_n_s_us,&__pyx_n_s_dL,&__pyx_n_s_DLs,&__pyx_n_s_t,&__pyx_n_s_Ani,&__pyx_n_s_fkwdargs,&__pyx_n_s_dLMode,&__pyx_n_s_method,&__pyx_n_s_Test,0};
PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_56LOS_calc_signal(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ff, __Pyx_memviewslice __pyx_v_Ds, __Pyx_memviewslice __pyx_v_us, PyObject *__pyx_v_dL, __Pyx_memviewslice __pyx_v_DLs, PyObject *__pyx_v_t, PyObject *__pyx_v_Ani, PyObject *__pyx_v_fkwdargs, PyObject *__pyx_v_dLMode, PyObject *__pyx_v_method, PyObject *__pyx_v_Test) {
PyObject *__pyx_v_C0 = NULL;
PyObject *__pyx_v_C1 = NULL;
PyBoolObject *__pyx_v_ani = 0;
unsigned int __pyx_v_nt;
unsigned int __pyx_v_axm;
unsigned int __pyx_v_ii;
unsigned int __pyx_v_jj;
unsigned int __pyx_v_N;
unsigned int __pyx_v_ND;
double __pyx_v_kkk;
double __pyx_v_D0;
double __pyx_v_D1;
double __pyx_v_D2;
double __pyx_v_u0;
double __pyx_v_u1;
double __pyx_v_u2;
double __pyx_v_dl0;
double __pyx_v_dl;
PyArrayObject *__pyx_v_pts = 0;
PyArrayObject *__pyx_v_sig = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_pts;
__Pyx_Buffer __pyx_pybuffer_pts;
__Pyx_LocalBuf_ND __pyx_pybuffernd_sig;
__Pyx_Buffer __pyx_pybuffer_sig;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_calc_signal", 0);
__Pyx_INCREF(__pyx_v_dLMode);
__Pyx_INCREF(__pyx_v_method);
__pyx_pybuffer_pts.pybuffer.buf = NULL;
__pyx_pybuffer_pts.refcount = 0;
__pyx_pybuffernd_pts.data = NULL;
__pyx_pybuffernd_pts.rcbuffer = &__pyx_pybuffer_pts;
__pyx_pybuffer_sig.pybuffer.buf = NULL;
__pyx_pybuffer_sig.refcount = 0;
__pyx_pybuffernd_sig.data = NULL;
__pyx_pybuffernd_sig.rcbuffer = &__pyx_pybuffer_sig;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sig.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.LOS_calc_signal", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sig.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_C0);
__Pyx_XDECREF(__pyx_v_C1);
__Pyx_XDECREF((PyObject *)__pyx_v_ani);
__Pyx_XDECREF((PyObject *)__pyx_v_pts);
__Pyx_XDECREF((PyObject *)__pyx_v_sig);
__PYX_XDEC_MEMVIEW(&__pyx_v_Ds, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_us, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_DLs, 1);
__Pyx_XDECREF(__pyx_v_dLMode);
__Pyx_XDECREF(__pyx_v_method);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__214 = PyTuple_Pack(31, __pyx_n_s_ff, __pyx_n_s_Ds, __pyx_n_s_us, __pyx_n_s_dL, __pyx_n_s_DLs, __pyx_n_s_t, __pyx_n_s_Ani, __pyx_n_s_fkwdargs, __pyx_n_s_dLMode, __pyx_n_s_method, __pyx_n_s_Test, __pyx_n_s_C0, __pyx_n_s_C1, __pyx_n_s_ani, __pyx_n_s_nt, __pyx_n_s_axm, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_N, __pyx_n_s_ND, __pyx_n_s_kkk, __pyx_n_s_D0, __pyx_n_s_D1, __pyx_n_s_D2, __pyx_n_s_u0, __pyx_n_s_u1, __pyx_n_s_u2, __pyx_n_s_dl0, __pyx_n_s_dl, __pyx_n_s_pts, __pyx_n_s_sig); if (unlikely(!__pyx_tuple__214)) __PYX_ERR(0, 4392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__214);
__Pyx_GIVEREF(__pyx_tuple__214);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_57LOS_calc_signal, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_calc_signal, __pyx_t_1) < 0) __PYX_ERR(0, 4392, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__215 = (PyObject*)__Pyx_PyCode_New(11, 0, 31, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__214, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_calc_signal, 4392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__215)) __PYX_ERR(0, 4392, __pyx_L1_error)
+4393: double[:,::1] DLs, t=None, Ani=None, dict fkwdargs={},
values[5] = ((PyObject *)Py_None);
values[6] = ((PyObject *)Py_None);
values[7] = __pyx_k__86;
values[8] = ((PyObject*)__pyx_n_s_abs);
values[9] = ((PyObject*)__pyx_n_s_simps);
/* … */
__pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4393, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_k__86 = ((PyObject*)__pyx_t_1);
__Pyx_GIVEREF(__pyx_t_1);
__pyx_t_1 = 0;
4394: str dLMode='abs', str method='simps',
+4395: Test=True):
values[10] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ff)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ds)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_calc_signal", 0, 5, 11, 1); __PYX_ERR(0, 4392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_us)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_calc_signal", 0, 5, 11, 2); __PYX_ERR(0, 4392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dL)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_calc_signal", 0, 5, 11, 3); __PYX_ERR(0, 4392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DLs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_calc_signal", 0, 5, 11, 4); __PYX_ERR(0, 4392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ani);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fkwdargs);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dLMode);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_method);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[10] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_calc_signal") < 0)) __PYX_ERR(0, 4392, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ff = values[0];
__pyx_v_Ds = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_Ds.memview)) __PYX_ERR(0, 4392, __pyx_L3_error)
__pyx_v_us = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_us.memview)) __PYX_ERR(0, 4392, __pyx_L3_error)
__pyx_v_dL = values[3];
__pyx_v_DLs = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_DLs.memview)) __PYX_ERR(0, 4393, __pyx_L3_error)
__pyx_v_t = values[5];
__pyx_v_Ani = values[6];
__pyx_v_fkwdargs = ((PyObject*)values[7]);
__pyx_v_dLMode = ((PyObject*)values[8]);
__pyx_v_method = ((PyObject*)values[9]);
__pyx_v_Test = values[10];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_calc_signal", 0, 5, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4392, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_calc_signal", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fkwdargs), (&PyDict_Type), 1, "fkwdargs", 1))) __PYX_ERR(0, 4393, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dLMode), (&PyString_Type), 1, "dLMode", 1))) __PYX_ERR(0, 4394, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_method), (&PyString_Type), 1, "method", 1))) __PYX_ERR(0, 4394, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_56LOS_calc_signal(__pyx_self, __pyx_v_ff, __pyx_v_Ds, __pyx_v_us, __pyx_v_dL, __pyx_v_DLs, __pyx_v_t, __pyx_v_Ani, __pyx_v_fkwdargs, __pyx_v_dLMode, __pyx_v_method, __pyx_v_Test);
4396:
4397: """ Return the sampled line, with the specified method
4398:
4399: 'linspace': return the N+1 edges, including the first and last point
4400: 'sum' : return N segments centers
4401: 'simps': return N+1 egdes, N even (for scipy.integrate.simps)
4402: 'romb' : return N+1 edges, N+1 = 2**k+1 (for scipy.integrate.romb)
4403: """
+4404: if Test:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4404, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4405: assert Ds.shape[0]==us.shape[0]==3, "Args Ds, us - dim 0"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = ((__pyx_v_Ds.shape[0]) == (__pyx_v_us.shape[0]));
if (__pyx_t_1) {
__pyx_t_1 = ((__pyx_v_us.shape[0]) == 3);
}
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_Ds_us_dim_0);
__PYX_ERR(0, 4405, __pyx_L1_error)
}
}
#endif
+4406: assert DLs.shape[0]==2, "Arg DLs - dim 0"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!(((__pyx_v_DLs.shape[0]) == 2) != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_DLs_dim_0);
__PYX_ERR(0, 4406, __pyx_L1_error)
}
}
#endif
+4407: assert Ds.shape[1]==us.shape[1]==DLs.shape[1], "Args Ds, us, DLs 1"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = ((__pyx_v_Ds.shape[1]) == (__pyx_v_us.shape[1]));
if (__pyx_t_1) {
__pyx_t_1 = ((__pyx_v_us.shape[1]) == (__pyx_v_DLs.shape[1]));
}
if (unlikely(!(__pyx_t_1 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_Ds_us_DLs_1);
__PYX_ERR(0, 4407, __pyx_L1_error)
}
}
#endif
+4408: C0 = not hasattr(dL,'__iter__') and dL>0.
__pyx_t_1 = __Pyx_HasAttr(__pyx_v_dL, __pyx_n_s_iter); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(0, 4408, __pyx_L1_error) __pyx_t_3 = (!(__pyx_t_1 != 0)); if (__pyx_t_3) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = PyObject_RichCompare(__pyx_v_dL, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4408, __pyx_L1_error) __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L4_bool_binop_done:; __pyx_v_C0 = __pyx_t_2; __pyx_t_2 = 0;
+4409: C1 = hasattr(dL,'__iter__') and len(dL)==Ds.shape[1] and np.all(dL>0.)
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_dL, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 4409, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L6_bool_binop_done; } __pyx_t_5 = PyObject_Length(__pyx_v_dL); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4409, __pyx_L1_error) __pyx_t_3 = (__pyx_t_5 == (__pyx_v_Ds.shape[1])); if (__pyx_t_3) { } else { __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L6_bool_binop_done; } __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_all); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyObject_RichCompare(__pyx_v_dL, __pyx_float_0_, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4409, __pyx_L1_error) __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_INCREF(__pyx_t_4); __pyx_t_2 = __pyx_t_4; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_L6_bool_binop_done:; __pyx_v_C1 = __pyx_t_2; __pyx_t_2 = 0;
+4410: assert C0 or C1, "Arg dL must be >0.!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_C0); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4410, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L9_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_C1); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4410, __pyx_L1_error)
__pyx_t_3 = __pyx_t_1;
__pyx_L9_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_dL_must_be_0);
__PYX_ERR(0, 4410, __pyx_L1_error)
}
}
#endif
+4411: assert dLMode.lower() in ['abs','rel'], "Arg dLMode in ['abs','rel']"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_dLMode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4411, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_abs, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4411, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_rel, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4411, __pyx_L1_error)
__pyx_t_3 = __pyx_t_1;
__pyx_L11_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_dLMode_in_abs_rel);
__PYX_ERR(0, 4411, __pyx_L1_error)
}
}
#endif
+4412: assert method.lower() in ['sum','simps','romb'], "Arg method"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_method); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4412, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4412, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4412, __pyx_L1_error)
if (!__pyx_t_1) {
} else {
__pyx_t_3 = __pyx_t_1;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_romb, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4412, __pyx_L1_error)
__pyx_t_3 = __pyx_t_1;
__pyx_L13_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_method);
__PYX_ERR(0, 4412, __pyx_L1_error)
}
}
#endif
4413: # Testing function
+4414: cdef bool ani = check_ff(ff,t=t,Ani=Ani)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_check_ff); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_v_ff); __Pyx_GIVEREF(__pyx_v_ff); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ff); __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4414, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_Ani, __pyx_v_Ani) < 0) __PYX_ERR(0, 4414, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4414, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 4414, __pyx_L1_error) __pyx_v_ani = ((PyBoolObject *)__pyx_t_6); __pyx_t_6 = 0;
4415:
+4416: cdef unsigned int nt, axm, ii, jj, N, ND = Ds.shape[1]
__pyx_v_ND = (__pyx_v_Ds.shape[1]);
4417: cdef double kkk, D0, D1, D2, u0, u1, u2, dl0, dl
4418: cdef np.ndarray[double,ndim=2] pts
+4419: if t is None or not hasattr(t,'__iter__'):
__pyx_t_1 = (__pyx_v_t == Py_None);
__pyx_t_9 = (__pyx_t_1 != 0);
if (!__pyx_t_9) {
} else {
__pyx_t_3 = __pyx_t_9;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_9 = __Pyx_HasAttr(__pyx_v_t, __pyx_n_s_iter); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4419, __pyx_L1_error)
__pyx_t_1 = ((!(__pyx_t_9 != 0)) != 0);
__pyx_t_3 = __pyx_t_1;
__pyx_L17_bool_binop_done:;
if (__pyx_t_3) {
/* … */
goto __pyx_L16;
}
+4420: nt = 1
__pyx_v_nt = 1;
+4421: axm = 0
__pyx_v_axm = 0;
4422: else:
+4423: nt = len(t)
/*else*/ {
__pyx_t_5 = PyObject_Length(__pyx_v_t); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4423, __pyx_L1_error)
__pyx_v_nt = __pyx_t_5;
+4424: axm = 1
__pyx_v_axm = 1; } __pyx_L16:;
+4425: cdef np.ndarray[double,ndim=2] sig = np.empty((nt,ND),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nt); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_6 = 0; __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4425, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4425, __pyx_L1_error) __pyx_t_10 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sig.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_sig = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_sig.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4425, __pyx_L1_error) } else {__pyx_pybuffernd_sig.diminfo[0].strides = __pyx_pybuffernd_sig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sig.diminfo[0].shape = __pyx_pybuffernd_sig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_sig.diminfo[1].strides = __pyx_pybuffernd_sig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_sig.diminfo[1].shape = __pyx_pybuffernd_sig.rcbuffer->pybuffer.shape[1]; } } __pyx_t_10 = 0; __pyx_v_sig = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
4426:
+4427: dLMode = dLMode.lower()
__pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_dLMode); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4427, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_dLMode, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
+4428: method = method.lower()
__pyx_t_6 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_method); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4428, __pyx_L1_error) __Pyx_DECREF_SET(__pyx_v_method, ((PyObject*)__pyx_t_6)); __pyx_t_6 = 0;
4429: # Case with unique dL
+4430: if not hasattr(dL,'__iter__'):
__pyx_t_3 = __Pyx_HasAttr(__pyx_v_dL, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 4430, __pyx_L1_error) __pyx_t_1 = ((!(__pyx_t_3 != 0)) != 0); if (__pyx_t_1) { /* … */ goto __pyx_L19; }
+4431: if dLMode=='rel':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_dLMode, __pyx_n_s_rel, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4431, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L20; }
+4432: N = <long>(Cceil(1./dL))
__pyx_t_6 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_v_dL, 1., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4432, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_N = ((long)ceil(__pyx_t_11));
+4433: if method=='sum':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4433, __pyx_L1_error) __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L21; }
+4434: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4435: dl0 = DLs[0,ii]
__pyx_t_15 = 0;
__pyx_t_16 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_15 * __pyx_v_DLs.strides[0]) )) + __pyx_t_16)) )));
+4436: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_17 = 1;
__pyx_t_18 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_17 * __pyx_v_DLs.strides[0]) )) + __pyx_t_18)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4437: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_19 * __pyx_v_Ds.strides[0]) )) + __pyx_t_20)) )));
__pyx_t_21 = 1;
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_21 * __pyx_v_Ds.strides[0]) )) + __pyx_t_22)) )));
__pyx_t_24 = 2;
__pyx_t_25 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_24 * __pyx_v_Ds.strides[0]) )) + __pyx_t_25)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4438: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_27 = 0;
__pyx_t_28 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_27 * __pyx_v_us.strides[0]) )) + __pyx_t_28)) )));
__pyx_t_29 = 1;
__pyx_t_30 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_29 * __pyx_v_us.strides[0]) )) + __pyx_t_30)) )));
__pyx_t_31 = 2;
__pyx_t_32 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_31 * __pyx_v_us.strides[0]) )) + __pyx_t_32)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4439: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4439, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4439, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4439, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4440: for jj in range(0,N):
__pyx_t_38 = __pyx_v_N;
__pyx_t_39 = __pyx_t_38;
for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
__pyx_v_jj = __pyx_t_40;
+4441: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4442: pts[0,jj] = D0 + kkk*u0
__pyx_t_41 = 0;
__pyx_t_42 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_41, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_42, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4443: pts[1,jj] = D1 + kkk*u1
__pyx_t_43 = 1;
__pyx_t_44 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_43, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_44, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4444: pts[2,jj] = D2 + kkk*u2
__pyx_t_45 = 2;
__pyx_t_46 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_45, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_46, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4445: if ani:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4445, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4446: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_6); __pyx_t_7 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4446, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_2) < 0)) __PYX_ERR(0, 4446, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4447: sig[:,ii] = np.sum(ff(pts,t=t,**fkwdargs),axis=axm)*dl
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4447, __pyx_L1_error) __pyx_t_4 = __pyx_t_7; __pyx_t_7 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4447, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_4, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4447, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_axis, __pyx_t_2) < 0) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_2, __pyx_t_4) < 0)) __PYX_ERR(0, 4447, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
4448:
+4449: elif method=='simps':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4449, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L21; }
+4450: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_47 = __pyx_v_N;
} else {
__pyx_t_47 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_47;
+4451: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4452: dl0 = DLs[0,ii]
__pyx_t_48 = 0;
__pyx_t_49 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_48 * __pyx_v_DLs.strides[0]) )) + __pyx_t_49)) )));
+4453: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_50 = 1;
__pyx_t_51 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_50 * __pyx_v_DLs.strides[0]) )) + __pyx_t_51)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4454: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_52 = 0;
__pyx_t_53 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_52 * __pyx_v_Ds.strides[0]) )) + __pyx_t_53)) )));
__pyx_t_54 = 1;
__pyx_t_55 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_54 * __pyx_v_Ds.strides[0]) )) + __pyx_t_55)) )));
__pyx_t_56 = 2;
__pyx_t_57 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_56 * __pyx_v_Ds.strides[0]) )) + __pyx_t_57)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4455: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_58 = 0;
__pyx_t_59 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_58 * __pyx_v_us.strides[0]) )) + __pyx_t_59)) )));
__pyx_t_60 = 1;
__pyx_t_61 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_60 * __pyx_v_us.strides[0]) )) + __pyx_t_61)) )));
__pyx_t_62 = 2;
__pyx_t_63 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_62 * __pyx_v_us.strides[0]) )) + __pyx_t_63)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4456: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4456, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4456, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4456, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+4457: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4458: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4459: pts[0,jj] = D0 + kkk*u0
__pyx_t_65 = 0;
__pyx_t_66 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_65, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_66, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4460: pts[1,jj] = D1 + kkk*u1
__pyx_t_67 = 1;
__pyx_t_68 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_67, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_68, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4461: pts[2,jj] = D2 + kkk*u2
__pyx_t_69 = 2;
__pyx_t_70 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_69, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_70, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4462: if ani:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4462, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+4463: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_4); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4463, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_2) < 0)) __PYX_ERR(0, 4463, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4464: sig[:,ii] = scpintg.simps(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_simps); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4464, __pyx_L1_error) __pyx_t_7 = __pyx_t_6; __pyx_t_6 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4464, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_7, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4464, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_7, __pyx_t_2) < 0)) __PYX_ERR(0, 4464, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; }
+4465: x=None,dx=dl,axis=axm)
__pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_x, Py_None) < 0) __PYX_ERR(0, 4465, __pyx_L1_error) __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dx, __pyx_t_2) < 0) __PYX_ERR(0, 4465, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_t_2) < 0) __PYX_ERR(0, 4465, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
4466:
4467: else:
+4468: N = 2**(<long>(Cceil(Clog2(<double>N))))
/*else*/ {
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4469: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4470: dl0 = DLs[0,ii]
__pyx_t_71 = 0;
__pyx_t_72 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_71 * __pyx_v_DLs.strides[0]) )) + __pyx_t_72)) )));
+4471: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_73 = 1;
__pyx_t_74 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_73 * __pyx_v_DLs.strides[0]) )) + __pyx_t_74)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4472: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_75 = 0;
__pyx_t_76 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_75 * __pyx_v_Ds.strides[0]) )) + __pyx_t_76)) )));
__pyx_t_77 = 1;
__pyx_t_78 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_77 * __pyx_v_Ds.strides[0]) )) + __pyx_t_78)) )));
__pyx_t_79 = 2;
__pyx_t_80 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_79 * __pyx_v_Ds.strides[0]) )) + __pyx_t_80)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4473: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_81 = 0;
__pyx_t_82 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_81 * __pyx_v_us.strides[0]) )) + __pyx_t_82)) )));
__pyx_t_83 = 1;
__pyx_t_84 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_83 * __pyx_v_us.strides[0]) )) + __pyx_t_84)) )));
__pyx_t_85 = 2;
__pyx_t_86 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_85 * __pyx_v_us.strides[0]) )) + __pyx_t_86)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4474: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4474, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4474, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4474, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4475: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4476: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4477: pts[0,jj] = D0 + kkk*u0
__pyx_t_87 = 0;
__pyx_t_88 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_87, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_88, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4478: pts[1,jj] = D1 + kkk*u1
__pyx_t_89 = 1;
__pyx_t_90 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_89, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_90, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4479: pts[2,jj] = D2 + kkk*u2
__pyx_t_91 = 2;
__pyx_t_92 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_92, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4480: if ani:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4480, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+4481: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4481, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_7) < 0)) __PYX_ERR(0, 4481, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4482: sig[:,ii] = scpintg.romb(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_romb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4482, __pyx_L1_error) __pyx_t_6 = __pyx_t_4; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4482, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_6, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4482, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_6, __pyx_t_7) < 0)) __PYX_ERR(0, 4482, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __pyx_L21:;
+4483: dx=dl,axis=axm,show=False)
__pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dx, __pyx_t_7) < 0) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_axis, __pyx_t_7) < 0) __PYX_ERR(0, 4483, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_show, Py_False) < 0) __PYX_ERR(0, 4483, __pyx_L1_error)
4484:
4485: else:
+4486: if method=='sum':
/*else*/ {
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4486, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_3 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L37;
}
+4487: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4488: dl0 = DLs[0,ii]
__pyx_t_93 = 0;
__pyx_t_94 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_93 * __pyx_v_DLs.strides[0]) )) + __pyx_t_94)) )));
4489: # Compute the number of intervals to satisfy the resolution
+4490: N = <long>(Cceil((DLs[1,ii]-dl0)/dL))
__pyx_t_95 = 1;
__pyx_t_96 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_95 * __pyx_v_DLs.strides[0]) )) + __pyx_t_96)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4490, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_v_dL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4490, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4490, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_11));
+4491: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_97 = 1;
__pyx_t_98 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_97 * __pyx_v_DLs.strides[0]) )) + __pyx_t_98)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4492: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_99 = 0;
__pyx_t_100 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_99 * __pyx_v_Ds.strides[0]) )) + __pyx_t_100)) )));
__pyx_t_101 = 1;
__pyx_t_102 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_101 * __pyx_v_Ds.strides[0]) )) + __pyx_t_102)) )));
__pyx_t_103 = 2;
__pyx_t_104 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_103 * __pyx_v_Ds.strides[0]) )) + __pyx_t_104)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4493: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_105 = 0;
__pyx_t_106 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_105 * __pyx_v_us.strides[0]) )) + __pyx_t_106)) )));
__pyx_t_107 = 1;
__pyx_t_108 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_107 * __pyx_v_us.strides[0]) )) + __pyx_t_108)) )));
__pyx_t_109 = 2;
__pyx_t_110 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_109 * __pyx_v_us.strides[0]) )) + __pyx_t_110)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4494: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4494, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4494, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4494, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4495: for jj in range(0,N):
__pyx_t_38 = __pyx_v_N;
__pyx_t_39 = __pyx_t_38;
for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
__pyx_v_jj = __pyx_t_40;
+4496: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4497: pts[0,jj] = D0 + kkk*u0
__pyx_t_111 = 0;
__pyx_t_112 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_111, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_112, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4498: pts[1,jj] = D1 + kkk*u1
__pyx_t_113 = 1;
__pyx_t_114 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_113, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_114, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4499: pts[2,jj] = D2 + kkk*u2
__pyx_t_115 = 2;
__pyx_t_116 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_115, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_116, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4500: if ani:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4500, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4501: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6); __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_6 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4501, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_7) < 0)) __PYX_ERR(0, 4501, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4502: sig[:,ii] = np.sum(ff(pts,t=t,**fkwdargs),axis=axm)*dl
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4502, __pyx_L1_error) __pyx_t_4 = __pyx_t_2; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4502, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_4, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4502, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_axis, __pyx_t_7) < 0) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyNumber_Multiply(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_7, __pyx_t_4) < 0)) __PYX_ERR(0, 4502, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
4503:
+4504: elif method=='simps':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4504, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L37; }
+4505: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4506: dl0 = DLs[0,ii]
__pyx_t_117 = 0;
__pyx_t_118 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_117 * __pyx_v_DLs.strides[0]) )) + __pyx_t_118)) )));
4507: # Compute the number of intervals to satisfy the resolution
+4508: N = <long>(Cceil((DLs[1,ii]-dl0)/dL))
__pyx_t_119 = 1;
__pyx_t_120 = __pyx_v_ii;
__pyx_t_4 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_119 * __pyx_v_DLs.strides[0]) )) + __pyx_t_120)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_v_dL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4508, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_11));
+4509: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_47 = __pyx_v_N;
} else {
__pyx_t_47 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_47;
+4510: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_121 = 1;
__pyx_t_122 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_121 * __pyx_v_DLs.strides[0]) )) + __pyx_t_122)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4511: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_123 = 0;
__pyx_t_124 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_123 * __pyx_v_Ds.strides[0]) )) + __pyx_t_124)) )));
__pyx_t_125 = 1;
__pyx_t_126 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_125 * __pyx_v_Ds.strides[0]) )) + __pyx_t_126)) )));
__pyx_t_127 = 2;
__pyx_t_128 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_127 * __pyx_v_Ds.strides[0]) )) + __pyx_t_128)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4512: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_129 = 0;
__pyx_t_130 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_129 * __pyx_v_us.strides[0]) )) + __pyx_t_130)) )));
__pyx_t_131 = 1;
__pyx_t_132 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_131 * __pyx_v_us.strides[0]) )) + __pyx_t_132)) )));
__pyx_t_133 = 2;
__pyx_t_134 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_133 * __pyx_v_us.strides[0]) )) + __pyx_t_134)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4513: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4513, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4513, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4513, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+4514: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4515: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4516: pts[0,jj] = D0 + kkk*u0
__pyx_t_135 = 0;
__pyx_t_136 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_135, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_136, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4517: pts[1,jj] = D1 + kkk*u1
__pyx_t_137 = 1;
__pyx_t_138 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_137, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_138, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4518: pts[2,jj] = D2 + kkk*u2
__pyx_t_139 = 2;
__pyx_t_140 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_139, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_140, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4519: if ani:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4519, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+4520: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4520, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_7); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_7 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4520, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_4) < 0)) __PYX_ERR(0, 4520, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4521: sig[:,ii] = scpintg.simps(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_simps); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4521, __pyx_L1_error) __pyx_t_2 = __pyx_t_6; __pyx_t_6 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4521, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_2, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4521, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_2, __pyx_t_4) < 0)) __PYX_ERR(0, 4521, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; }
+4522: x=None,dx=dl,axis=axm)
__pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_x, Py_None) < 0) __PYX_ERR(0, 4522, __pyx_L1_error) __pyx_t_4 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dx, __pyx_t_4) < 0) __PYX_ERR(0, 4522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_t_4) < 0) __PYX_ERR(0, 4522, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
4523:
4524: else:
+4525: for ii in range(0,ND):
/*else*/ {
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4526: dl0 = DLs[0,ii]
__pyx_t_141 = 0;
__pyx_t_142 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_141 * __pyx_v_DLs.strides[0]) )) + __pyx_t_142)) )));
4527: # Compute the number of intervals to satisfy the resolution
+4528: N = <long>(Cceil((DLs[1,ii]-dl0)/dL))
__pyx_t_143 = 1;
__pyx_t_144 = __pyx_v_ii;
__pyx_t_4 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_143 * __pyx_v_DLs.strides[0]) )) + __pyx_t_144)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_v_dL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4528, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4528, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_11));
+4529: N = 2**(<long>(Cceil(Clog2(<double>N))))
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4530: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_145 = 1;
__pyx_t_146 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_145 * __pyx_v_DLs.strides[0]) )) + __pyx_t_146)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4531: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_147 = 0;
__pyx_t_148 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_147 * __pyx_v_Ds.strides[0]) )) + __pyx_t_148)) )));
__pyx_t_149 = 1;
__pyx_t_150 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_149 * __pyx_v_Ds.strides[0]) )) + __pyx_t_150)) )));
__pyx_t_151 = 2;
__pyx_t_152 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_151 * __pyx_v_Ds.strides[0]) )) + __pyx_t_152)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4532: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_153 = 0;
__pyx_t_154 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_153 * __pyx_v_us.strides[0]) )) + __pyx_t_154)) )));
__pyx_t_155 = 1;
__pyx_t_156 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_155 * __pyx_v_us.strides[0]) )) + __pyx_t_156)) )));
__pyx_t_157 = 2;
__pyx_t_158 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_157 * __pyx_v_us.strides[0]) )) + __pyx_t_158)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4533: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4533, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4533, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_7); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4533, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_7)); __pyx_t_7 = 0;
+4534: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4535: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4536: pts[0,jj] = D0 + kkk*u0
__pyx_t_159 = 0;
__pyx_t_160 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_159, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_160, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4537: pts[1,jj] = D1 + kkk*u1
__pyx_t_161 = 1;
__pyx_t_162 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_161, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_162, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4538: pts[2,jj] = D2 + kkk*u2
__pyx_t_163 = 2;
__pyx_t_164 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_163, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_164, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4539: if ani:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4539, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+4540: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2); __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4540, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_4) < 0)) __PYX_ERR(0, 4540, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4541: sig[:,ii] = scpintg.romb(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_romb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4541, __pyx_L1_error) __pyx_t_6 = __pyx_t_7; __pyx_t_7 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4541, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_6, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4541, __pyx_L1_error) __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); __pyx_t_7 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_6, __pyx_t_4) < 0)) __PYX_ERR(0, 4541, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; } } __pyx_L37:; } __pyx_L20:;
+4542: dx=dl,axis=axm,show=False)
__pyx_t_7 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dx, __pyx_t_4) < 0) __PYX_ERR(0, 4542, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4542, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_axis, __pyx_t_4) < 0) __PYX_ERR(0, 4542, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_show, Py_False) < 0) __PYX_ERR(0, 4542, __pyx_L1_error)
4543:
4544: # Case with different resolution for each LOS
4545: else:
+4546: if dLMode=='rel':
/*else*/ {
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_dLMode, __pyx_n_s_rel, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4546, __pyx_L1_error)
__pyx_t_1 = (__pyx_t_3 != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L53;
}
+4547: if method=='sum':
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4547, __pyx_L1_error) __pyx_t_3 = (__pyx_t_1 != 0); if (__pyx_t_3) { /* … */ goto __pyx_L54; }
+4548: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4549: N = <long>(Cceil(1./dL[ii]))
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_t_4, 1., 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4549, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_N = ((long)ceil(__pyx_t_11));
+4550: dl0 = DLs[0,ii]
__pyx_t_165 = 0;
__pyx_t_166 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_165 * __pyx_v_DLs.strides[0]) )) + __pyx_t_166)) )));
+4551: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_167 = 1;
__pyx_t_168 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_167 * __pyx_v_DLs.strides[0]) )) + __pyx_t_168)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4552: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_169 = 0;
__pyx_t_170 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_169 * __pyx_v_Ds.strides[0]) )) + __pyx_t_170)) )));
__pyx_t_171 = 1;
__pyx_t_172 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_171 * __pyx_v_Ds.strides[0]) )) + __pyx_t_172)) )));
__pyx_t_173 = 2;
__pyx_t_174 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_173 * __pyx_v_Ds.strides[0]) )) + __pyx_t_174)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4553: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_175 = 0;
__pyx_t_176 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_175 * __pyx_v_us.strides[0]) )) + __pyx_t_176)) )));
__pyx_t_177 = 1;
__pyx_t_178 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_177 * __pyx_v_us.strides[0]) )) + __pyx_t_178)) )));
__pyx_t_179 = 2;
__pyx_t_180 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_179 * __pyx_v_us.strides[0]) )) + __pyx_t_180)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4554: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4554, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4554, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4554, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4555: for jj in range(0,N):
__pyx_t_38 = __pyx_v_N;
__pyx_t_39 = __pyx_t_38;
for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
__pyx_v_jj = __pyx_t_40;
+4556: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4557: pts[0,jj] = D0 + kkk*u0
__pyx_t_181 = 0;
__pyx_t_182 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_181, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_182, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4558: pts[1,jj] = D1 + kkk*u1
__pyx_t_183 = 1;
__pyx_t_184 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_183, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_184, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4559: pts[2,jj] = D2 + kkk*u2
__pyx_t_185 = 2;
__pyx_t_186 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_185, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_186, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4560: if ani:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4560, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+4561: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_6); __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4561, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_4) < 0)) __PYX_ERR(0, 4561, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4562: sig[:,ii] = np.sum(ff(pts,t=t,**fkwdargs),axis=axm)*dl
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4562, __pyx_L1_error) __pyx_t_7 = __pyx_t_2; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4562, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_7, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4562, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_axis, __pyx_t_4) < 0) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_4, __pyx_t_7) < 0)) __PYX_ERR(0, 4562, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; }
+4563: elif method=='simps':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4563, __pyx_L1_error) __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L54; }
+4564: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4565: N = <long>(Cceil(1./dL[ii]))
__pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_t_7, 1., 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4565, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_N = ((long)ceil(__pyx_t_11));
+4566: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_47 = __pyx_v_N;
} else {
__pyx_t_47 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_47;
+4567: dl0 = DLs[0,ii]
__pyx_t_187 = 0;
__pyx_t_188 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_187 * __pyx_v_DLs.strides[0]) )) + __pyx_t_188)) )));
+4568: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_189 = 1;
__pyx_t_190 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_189 * __pyx_v_DLs.strides[0]) )) + __pyx_t_190)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4569: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_191 = 0;
__pyx_t_192 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_191 * __pyx_v_Ds.strides[0]) )) + __pyx_t_192)) )));
__pyx_t_193 = 1;
__pyx_t_194 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_193 * __pyx_v_Ds.strides[0]) )) + __pyx_t_194)) )));
__pyx_t_195 = 2;
__pyx_t_196 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_195 * __pyx_v_Ds.strides[0]) )) + __pyx_t_196)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4570: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_197 = 0;
__pyx_t_198 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_197 * __pyx_v_us.strides[0]) )) + __pyx_t_198)) )));
__pyx_t_199 = 1;
__pyx_t_200 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_199 * __pyx_v_us.strides[0]) )) + __pyx_t_200)) )));
__pyx_t_201 = 2;
__pyx_t_202 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_201 * __pyx_v_us.strides[0]) )) + __pyx_t_202)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4571: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4571, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4571, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4571, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_6)); __pyx_t_6 = 0;
+4572: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4573: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4574: pts[0,jj] = D0 + kkk*u0
__pyx_t_203 = 0;
__pyx_t_204 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_203, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_204, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4575: pts[1,jj] = D1 + kkk*u1
__pyx_t_205 = 1;
__pyx_t_206 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_205, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_206, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4576: pts[2,jj] = D2 + kkk*u2
__pyx_t_207 = 2;
__pyx_t_208 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_207, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_208, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4577: if ani:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4577, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4578: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4578, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4); __pyx_t_6 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4578, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_7) < 0)) __PYX_ERR(0, 4578, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4579: sig[:,ii] = scpintg.simps(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_simps); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4579, __pyx_L1_error) __pyx_t_2 = __pyx_t_6; __pyx_t_6 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4579, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_2, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4579, __pyx_L1_error) __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_6); __pyx_t_6 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_2, __pyx_t_7) < 0)) __PYX_ERR(0, 4579, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; }
+4580: x=None,dx=dl,axis=axm)
__pyx_t_6 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_x, Py_None) < 0) __PYX_ERR(0, 4580, __pyx_L1_error) __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dx, __pyx_t_7) < 0) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_t_7) < 0) __PYX_ERR(0, 4580, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
4581:
4582: else:
+4583: for ii in range(0,ND):
/*else*/ {
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4584: N = <long>(Cceil(1./dL[ii]))
__pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyFloat_DivideCObj(__pyx_float_1_, __pyx_t_7, 1., 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4584, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_N = ((long)ceil(__pyx_t_11));
+4585: N = 2**(<long>(Cceil(Clog2(<double>N))))
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4586: dl0 = DLs[0,ii]
__pyx_t_209 = 0;
__pyx_t_210 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_209 * __pyx_v_DLs.strides[0]) )) + __pyx_t_210)) )));
+4587: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_211 = 1;
__pyx_t_212 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_211 * __pyx_v_DLs.strides[0]) )) + __pyx_t_212)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4588: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_213 = 0;
__pyx_t_214 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_213 * __pyx_v_Ds.strides[0]) )) + __pyx_t_214)) )));
__pyx_t_215 = 1;
__pyx_t_216 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_215 * __pyx_v_Ds.strides[0]) )) + __pyx_t_216)) )));
__pyx_t_217 = 2;
__pyx_t_218 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_217 * __pyx_v_Ds.strides[0]) )) + __pyx_t_218)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4589: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_219 = 0;
__pyx_t_220 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_219 * __pyx_v_us.strides[0]) )) + __pyx_t_220)) )));
__pyx_t_221 = 1;
__pyx_t_222 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_221 * __pyx_v_us.strides[0]) )) + __pyx_t_222)) )));
__pyx_t_223 = 2;
__pyx_t_224 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_223 * __pyx_v_us.strides[0]) )) + __pyx_t_224)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4590: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4590, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4590, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4590, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4590, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4591: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4592: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4593: pts[0,jj] = D0 + kkk*u0
__pyx_t_225 = 0;
__pyx_t_226 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_225, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_226, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4594: pts[1,jj] = D1 + kkk*u1
__pyx_t_227 = 1;
__pyx_t_228 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_227, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_228, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4595: pts[2,jj] = D2 + kkk*u2
__pyx_t_229 = 2;
__pyx_t_230 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_229, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_230, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4596: if ani:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4596, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4597: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4597, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_7) < 0)) __PYX_ERR(0, 4597, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4598: sig[:,ii] = scpintg.romb(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_romb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4598, __pyx_L1_error) __pyx_t_6 = __pyx_t_4; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4598, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_6, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4598, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_6, __pyx_t_7) < 0)) __PYX_ERR(0, 4598, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __pyx_L54:;
+4599: dx=dl,axis=axm,show=False)
__pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dx, __pyx_t_7) < 0) __PYX_ERR(0, 4599, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_axis, __pyx_t_7) < 0) __PYX_ERR(0, 4599, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_show, Py_False) < 0) __PYX_ERR(0, 4599, __pyx_L1_error)
4600:
4601: else:
+4602: if method=='sum':
/*else*/ {
__pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_sum, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4602, __pyx_L1_error)
__pyx_t_3 = (__pyx_t_1 != 0);
if (__pyx_t_3) {
/* … */
goto __pyx_L70;
}
+4603: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4604: dl0 = DLs[0,ii]
__pyx_t_231 = 0;
__pyx_t_232 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_231 * __pyx_v_DLs.strides[0]) )) + __pyx_t_232)) )));
4605: # Compute the number of intervals to satisfy the resolution
+4606: N = <long>(Cceil((DLs[1,ii]-dl0)/dL[ii]))
__pyx_t_233 = 1;
__pyx_t_234 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_233 * __pyx_v_DLs.strides[0]) )) + __pyx_t_234)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4606, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4606, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_11));
+4607: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_235 = 1;
__pyx_t_236 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_235 * __pyx_v_DLs.strides[0]) )) + __pyx_t_236)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4608: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_237 = 0;
__pyx_t_238 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_237 * __pyx_v_Ds.strides[0]) )) + __pyx_t_238)) )));
__pyx_t_239 = 1;
__pyx_t_240 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_239 * __pyx_v_Ds.strides[0]) )) + __pyx_t_240)) )));
__pyx_t_241 = 2;
__pyx_t_242 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_241 * __pyx_v_Ds.strides[0]) )) + __pyx_t_242)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4609: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_243 = 0;
__pyx_t_244 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_243 * __pyx_v_us.strides[0]) )) + __pyx_t_244)) )));
__pyx_t_245 = 1;
__pyx_t_246 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_245 * __pyx_v_us.strides[0]) )) + __pyx_t_246)) )));
__pyx_t_247 = 2;
__pyx_t_248 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_247 * __pyx_v_us.strides[0]) )) + __pyx_t_248)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4610: pts = np.empty((3,N),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_N); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4610, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4610, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4610, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4611: for jj in range(0,N):
__pyx_t_38 = __pyx_v_N;
__pyx_t_39 = __pyx_t_38;
for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
__pyx_v_jj = __pyx_t_40;
+4612: kkk = dl0 + (0.5+<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + ((0.5 + ((double)__pyx_v_jj)) * __pyx_v_dl));
+4613: pts[0,jj] = D0 + kkk*u0
__pyx_t_249 = 0;
__pyx_t_250 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_249, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_250, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4614: pts[1,jj] = D1 + kkk*u1
__pyx_t_251 = 1;
__pyx_t_252 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_251, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_252, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4615: pts[2,jj] = D2 + kkk*u2
__pyx_t_253 = 2;
__pyx_t_254 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_253, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_254, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4616: if ani:
__pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4616, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+4617: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_7 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4617, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_6) < 0)) __PYX_ERR(0, 4617, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4618: sig[:,ii] = np.sum(ff(pts,t=t,**fkwdargs),axis=axm)*dl
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sum); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4618, __pyx_L1_error) __pyx_t_7 = __pyx_t_2; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4618, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_7, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4618, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_axis, __pyx_t_6) < 0) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_6, __pyx_t_7) < 0)) __PYX_ERR(0, 4618, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; }
4619:
+4620: elif method=='simps':
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_method, __pyx_n_s_simps, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4620, __pyx_L1_error) __pyx_t_1 = (__pyx_t_3 != 0); if (__pyx_t_1) { /* … */ goto __pyx_L70; }
+4621: for ii in range(0,ND):
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4622: dl0 = DLs[0,ii]
__pyx_t_255 = 0;
__pyx_t_256 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_255 * __pyx_v_DLs.strides[0]) )) + __pyx_t_256)) )));
4623: # Compute the number of intervals to satisfy the resolution
+4624: N = <long>(Cceil((DLs[1,ii]-dl0)/dL[ii]))
__pyx_t_257 = 1;
__pyx_t_258 = __pyx_v_ii;
__pyx_t_7 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_257 * __pyx_v_DLs.strides[0]) )) + __pyx_t_258)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4624, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4624, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_11));
+4625: N = N if N%2==0 else N+1
if ((((__pyx_v_N % 2) == 0) != 0)) {
__pyx_t_47 = __pyx_v_N;
} else {
__pyx_t_47 = (__pyx_v_N + 1);
}
__pyx_v_N = __pyx_t_47;
+4626: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_259 = 1;
__pyx_t_260 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_259 * __pyx_v_DLs.strides[0]) )) + __pyx_t_260)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4627: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_261 = 0;
__pyx_t_262 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_261 * __pyx_v_Ds.strides[0]) )) + __pyx_t_262)) )));
__pyx_t_263 = 1;
__pyx_t_264 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_263 * __pyx_v_Ds.strides[0]) )) + __pyx_t_264)) )));
__pyx_t_265 = 2;
__pyx_t_266 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_265 * __pyx_v_Ds.strides[0]) )) + __pyx_t_266)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4628: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_267 = 0;
__pyx_t_268 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_267 * __pyx_v_us.strides[0]) )) + __pyx_t_268)) )));
__pyx_t_269 = 1;
__pyx_t_270 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_269 * __pyx_v_us.strides[0]) )) + __pyx_t_270)) )));
__pyx_t_271 = 2;
__pyx_t_272 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_271 * __pyx_v_us.strides[0]) )) + __pyx_t_272)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4629: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4629, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4629, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_35, &__pyx_t_36, &__pyx_t_37); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_35); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_37); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_35, __pyx_t_36, __pyx_t_37); } __pyx_t_35 = __pyx_t_36 = __pyx_t_37 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4629, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_4)); __pyx_t_4 = 0;
+4630: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4631: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4632: pts[0,jj] = D0 + kkk*u0
__pyx_t_273 = 0;
__pyx_t_274 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_273, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_274, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4633: pts[1,jj] = D1 + kkk*u1
__pyx_t_275 = 1;
__pyx_t_276 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_275, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_276, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4634: pts[2,jj] = D2 + kkk*u2
__pyx_t_277 = 2;
__pyx_t_278 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_277, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_278, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4635: if ani:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4635, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4636: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4636, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_6) < 0)) __PYX_ERR(0, 4636, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4637: sig[:,ii] = scpintg.simps(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_simps); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4637, __pyx_L1_error) __pyx_t_7 = __pyx_t_4; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4637, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_7, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4637, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = 0; /* … */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); __pyx_t_4 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 4637, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; }
+4638: x=None,dx=dl,axis=axm)
__pyx_t_4 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_x, Py_None) < 0) __PYX_ERR(0, 4638, __pyx_L1_error) __pyx_t_6 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dx, __pyx_t_6) < 0) __PYX_ERR(0, 4638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_axis, __pyx_t_6) < 0) __PYX_ERR(0, 4638, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
4639:
4640: else:
+4641: for ii in range(0,ND):
/*else*/ {
__pyx_t_12 = __pyx_v_ND;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+4642: dl0 = DLs[0,ii]
__pyx_t_279 = 0;
__pyx_t_280 = __pyx_v_ii;
__pyx_v_dl0 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_279 * __pyx_v_DLs.strides[0]) )) + __pyx_t_280)) )));
4643: # Compute the number of intervals to satisfy the resolution
+4644: N = <long>(Cceil((DLs[1,ii]-dl0)/dL[ii]))
__pyx_t_281 = 1;
__pyx_t_282 = __pyx_v_ii;
__pyx_t_6 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_281 * __pyx_v_DLs.strides[0]) )) + __pyx_t_282)) ))) - __pyx_v_dl0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4644, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dL, __pyx_v_ii, unsigned int, 0, __Pyx_PyInt_From_unsigned_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4644, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4644, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_11 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_11 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4644, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_v_N = ((long)ceil(__pyx_t_11));
+4645: N = 2**(<long>(Cceil(Clog2(<double>N))))
__pyx_v_N = __Pyx_pow_long(2, ((long)ceil(log2(((double)__pyx_v_N)))));
+4646: dl = (DLs[1,ii]-dl0)/<double>N
__pyx_t_283 = 1;
__pyx_t_284 = __pyx_v_ii;
__pyx_v_dl = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_DLs.data + __pyx_t_283 * __pyx_v_DLs.strides[0]) )) + __pyx_t_284)) ))) - __pyx_v_dl0) / ((double)__pyx_v_N));
+4647: D0, D1, D2 = Ds[0,ii], Ds[1,ii], Ds[2,ii]
__pyx_t_285 = 0;
__pyx_t_286 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_285 * __pyx_v_Ds.strides[0]) )) + __pyx_t_286)) )));
__pyx_t_287 = 1;
__pyx_t_288 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_287 * __pyx_v_Ds.strides[0]) )) + __pyx_t_288)) )));
__pyx_t_289 = 2;
__pyx_t_290 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_289 * __pyx_v_Ds.strides[0]) )) + __pyx_t_290)) )));
__pyx_v_D0 = __pyx_t_11;
__pyx_v_D1 = __pyx_t_23;
__pyx_v_D2 = __pyx_t_26;
+4648: u0, u1, u2 = us[0,ii], us[1,ii], us[2,ii]
__pyx_t_291 = 0;
__pyx_t_292 = __pyx_v_ii;
__pyx_t_26 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_291 * __pyx_v_us.strides[0]) )) + __pyx_t_292)) )));
__pyx_t_293 = 1;
__pyx_t_294 = __pyx_v_ii;
__pyx_t_23 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_293 * __pyx_v_us.strides[0]) )) + __pyx_t_294)) )));
__pyx_t_295 = 2;
__pyx_t_296 = __pyx_v_ii;
__pyx_t_11 = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_295 * __pyx_v_us.strides[0]) )) + __pyx_t_296)) )));
__pyx_v_u0 = __pyx_t_26;
__pyx_v_u1 = __pyx_t_23;
__pyx_v_u2 = __pyx_t_11;
+4649: pts = np.empty((3,N+1),dtype=float)
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_long((__pyx_v_N + 1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)(&PyFloat_Type))) < 0) __PYX_ERR(0, 4649, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4649, __pyx_L1_error) __pyx_t_33 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_pts.rcbuffer->pybuffer); __pyx_t_34 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_t_33, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack); if (unlikely(__pyx_t_34 < 0)) { PyErr_Fetch(&__pyx_t_37, &__pyx_t_36, &__pyx_t_35); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_pts.rcbuffer->pybuffer, (PyObject*)__pyx_v_pts, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_37); Py_XDECREF(__pyx_t_36); Py_XDECREF(__pyx_t_35); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_37, __pyx_t_36, __pyx_t_35); } __pyx_t_37 = __pyx_t_36 = __pyx_t_35 = 0; } __pyx_pybuffernd_pts.diminfo[0].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_pts.diminfo[0].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_pts.diminfo[1].strides = __pyx_pybuffernd_pts.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_pts.diminfo[1].shape = __pyx_pybuffernd_pts.rcbuffer->pybuffer.shape[1]; if (unlikely(__pyx_t_34 < 0)) __PYX_ERR(0, 4649, __pyx_L1_error) } __pyx_t_33 = 0; __Pyx_XDECREF_SET(__pyx_v_pts, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0;
+4650: for jj in range(0,N+1):
__pyx_t_47 = (__pyx_v_N + 1);
__pyx_t_64 = __pyx_t_47;
for (__pyx_t_38 = 0; __pyx_t_38 < __pyx_t_64; __pyx_t_38+=1) {
__pyx_v_jj = __pyx_t_38;
+4651: kkk = dl0 + (<double>jj)*dl
__pyx_v_kkk = (__pyx_v_dl0 + (((double)__pyx_v_jj) * __pyx_v_dl));
+4652: pts[0,jj] = D0 + kkk*u0
__pyx_t_297 = 0;
__pyx_t_298 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_297, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_298, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D0 + (__pyx_v_kkk * __pyx_v_u0));
+4653: pts[1,jj] = D1 + kkk*u1
__pyx_t_299 = 1;
__pyx_t_300 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_299, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_300, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D1 + (__pyx_v_kkk * __pyx_v_u1));
+4654: pts[2,jj] = D2 + kkk*u2
__pyx_t_301 = 2;
__pyx_t_302 = __pyx_v_jj;
*__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_pts.rcbuffer->pybuffer.buf, __pyx_t_301, __pyx_pybuffernd_pts.diminfo[0].strides, __pyx_t_302, __pyx_pybuffernd_pts.diminfo[1].strides) = (__pyx_v_D2 + (__pyx_v_kkk * __pyx_v_u2));
}
+4655: if ani:
__pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_ani)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4655, __pyx_L1_error) if (__pyx_t_1) { /* … */ }
+4656: fkwdargs['Vect'] = (-u0,-u1,-u2)
__pyx_t_2 = PyFloat_FromDouble((-__pyx_v_u0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyFloat_FromDouble((-__pyx_v_u1)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = PyFloat_FromDouble((-__pyx_v_u2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4656, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4); __pyx_t_2 = 0; __pyx_t_6 = 0; __pyx_t_4 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 4656, __pyx_L1_error) } if (unlikely(PyDict_SetItem(__pyx_v_fkwdargs, __pyx_n_s_Vect, __pyx_t_7) < 0)) __PYX_ERR(0, 4656, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4657: sig[:,ii] = scpintg.romb(ff(pts,t=t,**fkwdargs),
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_scpintg); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_romb); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(((PyObject *)__pyx_v_pts)); __Pyx_GIVEREF(((PyObject *)__pyx_v_pts)); PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_pts)); __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_t, __pyx_v_t) < 0) __PYX_ERR(0, 4657, __pyx_L1_error) __pyx_t_6 = __pyx_t_2; __pyx_t_2 = 0; if (unlikely(__pyx_v_fkwdargs == Py_None)) { PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); __PYX_ERR(0, 4657, __pyx_L1_error) } if (__Pyx_MergeKeywords(__pyx_t_6, __pyx_v_fkwdargs) < 0) __PYX_ERR(0, 4657, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_ff, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sig), __pyx_t_6, __pyx_t_7) < 0)) __PYX_ERR(0, 4657, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; } } __pyx_L70:; } __pyx_L53:; } __pyx_L19:;
+4658: dx=dl,axis=axm,show=False)
__pyx_t_2 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_dl); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dx, __pyx_t_7) < 0) __PYX_ERR(0, 4658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_unsigned_int(__pyx_v_axm); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_axis, __pyx_t_7) < 0) __PYX_ERR(0, 4658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_show, Py_False) < 0) __PYX_ERR(0, 4658, __pyx_L1_error)
4659:
+4660: if nt==1:
__pyx_t_1 = ((__pyx_v_nt == 1) != 0);
if (__pyx_t_1) {
/* … */
}
+4661: return sig.ravel()
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sig), __pyx_n_s_ravel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_7 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_7; __pyx_t_7 = 0; goto __pyx_L0;
4662: else:
+4663: return sig
/*else*/ {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(((PyObject *)__pyx_v_sig));
__pyx_r = ((PyObject *)__pyx_v_sig);
goto __pyx_L0;
}
4664:
4665:
4666:
4667:
4668:
4669:
4670:
4671:
4672: ######################################################################
4673: # Sinogram-specific
4674: ######################################################################
4675:
4676:
+4677: def LOS_sino_findRootkPMin_Tor(double uParN, double uN, double Sca, double RZ0,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_59LOS_sino_findRootkPMin_Tor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_58LOS_sino_findRootkPMin_Tor[] = "\n Rendre \"vectoriel\" sur LOS et sur les cercles (deux boucles \"for\")\n Intersection ligne et cercle\n double uParN : composante de u parallel au plan (x,y)\n double uN : uz\n double Sca : \077\077? produit scalaire ... ?\n double RZ0 : Grand rayon du cercle\n double RZ1 : Z\n => cercle est centr\303\251 au point (0, 0, RZ1) et rayon RZ0\n double ScaP : .... ?\n double DParN : D origine de LOS.... ? N => norme de la composante du vecteur OD\n double kOut : kmax o\303\271 on peut trouver un r\303\251sultat\n double D0, double D1, double D2 : composantes de D (origine LOS)\n double u0, double u1, double u2 : composantes de U (direction LOS)\n str Mode='LOS' : si LOS pas de sol apr\303\250s kmax)\n ::: Faire une fonction double mais qui renvoit QUE un tableau de bool avec true si\n la distance est plus petite qu'un certain eps, false sinon.\n TODO: ........... @LM\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_59LOS_sino_findRootkPMin_Tor = {"LOS_sino_findRootkPMin_Tor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_59LOS_sino_findRootkPMin_Tor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_58LOS_sino_findRootkPMin_Tor};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_59LOS_sino_findRootkPMin_Tor(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
double __pyx_v_uParN;
double __pyx_v_uN;
double __pyx_v_Sca;
double __pyx_v_RZ0;
double __pyx_v_RZ1;
double __pyx_v_ScaP;
double __pyx_v_DParN;
double __pyx_v_kOut;
double __pyx_v_D0;
double __pyx_v_D1;
double __pyx_v_D2;
double __pyx_v_u0;
double __pyx_v_u1;
double __pyx_v_u2;
PyObject *__pyx_v_Mode = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_sino_findRootkPMin_Tor (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_uParN,&__pyx_n_s_uN,&__pyx_n_s_Sca,&__pyx_n_s_RZ0,&__pyx_n_s_RZ1,&__pyx_n_s_ScaP,&__pyx_n_s_DParN,&__pyx_n_s_kOut,&__pyx_n_s_D0,&__pyx_n_s_D1,&__pyx_n_s_D2,&__pyx_n_s_u0,&__pyx_n_s_u1,&__pyx_n_s_u2,&__pyx_n_s_Mode,0};
PyObject* values[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
values[14] = ((PyObject*)__pyx_n_s_LOS);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uParN)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uN)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 1); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Sca)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 2); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RZ0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 3); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RZ1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 4); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ScaP)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 5); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DParN)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 6); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kOut)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 7); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 8:
if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 8); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 9:
if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 9); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 10:
if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 10); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 11:
if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u0)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 11); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 12:
if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u1)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 12); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 13:
if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u2)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, 13); __PYX_ERR(0, 4677, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Mode);
if (value) { values[14] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_sino_findRootkPMin_Tor") < 0)) __PYX_ERR(0, 4677, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_uParN = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_uParN == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4677, __pyx_L3_error)
__pyx_v_uN = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_uN == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4677, __pyx_L3_error)
__pyx_v_Sca = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Sca == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4677, __pyx_L3_error)
__pyx_v_RZ0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_RZ0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4677, __pyx_L3_error)
__pyx_v_RZ1 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_RZ1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4678, __pyx_L3_error)
__pyx_v_ScaP = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_ScaP == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4678, __pyx_L3_error)
__pyx_v_DParN = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_DParN == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4678, __pyx_L3_error)
__pyx_v_kOut = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_kOut == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4679, __pyx_L3_error)
__pyx_v_D0 = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_D0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4679, __pyx_L3_error)
__pyx_v_D1 = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_D1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4679, __pyx_L3_error)
__pyx_v_D2 = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_D2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4679, __pyx_L3_error)
__pyx_v_u0 = __pyx_PyFloat_AsDouble(values[11]); if (unlikely((__pyx_v_u0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4680, __pyx_L3_error)
__pyx_v_u1 = __pyx_PyFloat_AsDouble(values[12]); if (unlikely((__pyx_v_u1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4680, __pyx_L3_error)
__pyx_v_u2 = __pyx_PyFloat_AsDouble(values[13]); if (unlikely((__pyx_v_u2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4680, __pyx_L3_error)
__pyx_v_Mode = ((PyObject*)values[14]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_sino_findRootkPMin_Tor", 0, 14, 15, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4677, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_sino_findRootkPMin_Tor", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Mode), (&PyString_Type), 1, "Mode", 1))) __PYX_ERR(0, 4680, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_58LOS_sino_findRootkPMin_Tor(__pyx_self, __pyx_v_uParN, __pyx_v_uN, __pyx_v_Sca, __pyx_v_RZ0, __pyx_v_RZ1, __pyx_v_ScaP, __pyx_v_DParN, __pyx_v_kOut, __pyx_v_D0, __pyx_v_D1, __pyx_v_D2, __pyx_v_u0, __pyx_v_u1, __pyx_v_u2, __pyx_v_Mode);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_58LOS_sino_findRootkPMin_Tor(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_uParN, double __pyx_v_uN, double __pyx_v_Sca, double __pyx_v_RZ0, double __pyx_v_RZ1, double __pyx_v_ScaP, double __pyx_v_DParN, double __pyx_v_kOut, double __pyx_v_D0, double __pyx_v_D1, double __pyx_v_D2, double __pyx_v_u0, double __pyx_v_u1, double __pyx_v_u2, PyObject *__pyx_v_Mode) {
double __pyx_v_a4;
double __pyx_v_a3;
double __pyx_v_a2;
double __pyx_v_a1;
double __pyx_v_a0;
PyArrayObject *__pyx_v_roo = 0;
PyObject *__pyx_v_KK = 0;
PyObject *__pyx_v_Pk = 0;
PyObject *__pyx_v_Pk2D = 0;
PyObject *__pyx_v_rk = 0;
double __pyx_v_kk;
double __pyx_v_kPMin;
PyObject *__pyx_v_pp = NULL;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_sino_findRootkPMin_Tor", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_AddTraceback("tofu.geom._GG03.LOS_sino_findRootkPMin_Tor", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_roo);
__Pyx_XDECREF(__pyx_v_KK);
__Pyx_XDECREF(__pyx_v_Pk);
__Pyx_XDECREF(__pyx_v_Pk2D);
__Pyx_XDECREF(__pyx_v_rk);
__Pyx_XDECREF(__pyx_v_pp);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__216 = PyTuple_Pack(28, __pyx_n_s_uParN, __pyx_n_s_uN, __pyx_n_s_Sca, __pyx_n_s_RZ0, __pyx_n_s_RZ1, __pyx_n_s_ScaP, __pyx_n_s_DParN, __pyx_n_s_kOut, __pyx_n_s_D0, __pyx_n_s_D1, __pyx_n_s_D2, __pyx_n_s_u0, __pyx_n_s_u1, __pyx_n_s_u2, __pyx_n_s_Mode, __pyx_n_s_a4, __pyx_n_s_a3, __pyx_n_s_a2, __pyx_n_s_a1, __pyx_n_s_a0, __pyx_n_s_roo, __pyx_n_s_KK, __pyx_n_s_Pk, __pyx_n_s_Pk2D, __pyx_n_s_rk, __pyx_n_s_kk, __pyx_n_s_kPMin, __pyx_n_s_pp); if (unlikely(!__pyx_tuple__216)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__216);
__Pyx_GIVEREF(__pyx_tuple__216);
/* … */
__pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_59LOS_sino_findRootkPMin_Tor, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_sino_findRootkPMin_Tor, __pyx_t_1) < 0) __PYX_ERR(0, 4677, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_codeobj__217 = (PyObject*)__Pyx_PyCode_New(15, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__216, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_sino_findRootkPMin_Tor, 4677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__217)) __PYX_ERR(0, 4677, __pyx_L1_error)
4678: double RZ1, double ScaP, double DParN,
4679: double kOut, double D0, double D1, double D2,
4680: double u0, double u1, double u2, str Mode='LOS'):
4681: """
4682: Rendre "vectoriel" sur LOS et sur les cercles (deux boucles "for")
4683: Intersection ligne et cercle
4684: double uParN : composante de u parallel au plan (x,y)
4685: double uN : uz
4686: double Sca : ??? produit scalaire ... ?
4687: double RZ0 : Grand rayon du cercle
4688: double RZ1 : Z
4689: => cercle est centré au point (0, 0, RZ1) et rayon RZ0
4690: double ScaP : .... ?
4691: double DParN : D origine de LOS.... ? N => norme de la composante du vecteur OD
4692: double kOut : kmax où on peut trouver un résultat
4693: double D0, double D1, double D2 : composantes de D (origine LOS)
4694: double u0, double u1, double u2 : composantes de U (direction LOS)
4695: str Mode='LOS' : si LOS pas de sol après kmax)
4696: ::: Faire une fonction double mais qui renvoit QUE un tableau de bool avec true si
4697: la distance est plus petite qu'un certain eps, false sinon.
4698: TODO: ........... @LM
4699: """
+4700: cdef double a4 = (uParN*uN*uN)**2, a3 = 2*( (Sca-RZ1*u2)*(uParN*uN)**2 + ScaP*uN**4 )
__pyx_v_a4 = pow(((__pyx_v_uParN * __pyx_v_uN) * __pyx_v_uN), 2.0); __pyx_v_a3 = (2.0 * (((__pyx_v_Sca - (__pyx_v_RZ1 * __pyx_v_u2)) * pow((__pyx_v_uParN * __pyx_v_uN), 2.0)) + (__pyx_v_ScaP * pow(__pyx_v_uN, 4.0))));
+4701: cdef double a2 = (uParN*(Sca-RZ1*u2))**2 + 4.*ScaP*(Sca-RZ1*u2)*uN**2 + (DParN*uN*uN)**2 - (RZ0*uParN*uParN)**2
__pyx_v_a2 = (((pow((__pyx_v_uParN * (__pyx_v_Sca - (__pyx_v_RZ1 * __pyx_v_u2))), 2.0) + (((4. * __pyx_v_ScaP) * (__pyx_v_Sca - (__pyx_v_RZ1 * __pyx_v_u2))) * pow(__pyx_v_uN, 2.0))) + pow(((__pyx_v_DParN * __pyx_v_uN) * __pyx_v_uN), 2.0)) - pow(((__pyx_v_RZ0 * __pyx_v_uParN) * __pyx_v_uParN), 2.0));
+4702: cdef double a1 = 2*( ScaP*(Sca-RZ1*u2)**2 + (Sca-RZ1*u2)*(DParN*uN)**2 - ScaP*(RZ0*uParN)**2 )
__pyx_v_a1 = (2.0 * (((__pyx_v_ScaP * pow((__pyx_v_Sca - (__pyx_v_RZ1 * __pyx_v_u2)), 2.0)) + ((__pyx_v_Sca - (__pyx_v_RZ1 * __pyx_v_u2)) * pow((__pyx_v_DParN * __pyx_v_uN), 2.0))) - (__pyx_v_ScaP * pow((__pyx_v_RZ0 * __pyx_v_uParN), 2.0))));
+4703: cdef double a0 = ((Sca-RZ1*u2)*DParN)**2 - (RZ0*ScaP)**2
__pyx_v_a0 = (pow(((__pyx_v_Sca - (__pyx_v_RZ1 * __pyx_v_u2)) * __pyx_v_DParN), 2.0) - pow((__pyx_v_RZ0 * __pyx_v_ScaP), 2.0));
+4704: cdef np.ndarray roo = np.roots(np.array([a4,a3,a2,a1,a0]))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_roots); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_a4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_a3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_a2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyFloat_FromDouble(__pyx_v_a1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyFloat_FromDouble(__pyx_v_a0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyList_New(5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyList_SET_ITEM(__pyx_t_10, 2, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_10, 3, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_10, 4, __pyx_t_9); __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_9 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_9)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_9); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_10); __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4704, __pyx_L1_error) __pyx_v_roo = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+4705: cdef list KK = list(np.real(roo[np.isreal(roo)])) # There might be several solutions
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_real); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_isreal); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_10); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_10, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_5, ((PyObject *)__pyx_v_roo)) : __Pyx_PyObject_CallOneArg(__pyx_t_10, ((PyObject *)__pyx_v_roo)); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_roo), __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_10); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PySequence_List(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_KK = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
4706: cdef list Pk, Pk2D, rk
4707: cdef double kk, kPMin
+4708: if Mode=='LOS': # Take solution on physical LOS
__pyx_t_11 = (__Pyx_PyString_Equals(__pyx_v_Mode, __pyx_n_s_LOS, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 4708, __pyx_L1_error) __pyx_t_12 = (__pyx_t_11 != 0); if (__pyx_t_12) { /* … */ goto __pyx_L3; }
+4709: if any([kk>=0 and kk<=kOut for kk in KK]):
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_v_KK; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4709, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_kk = __pyx_t_14; __pyx_t_12 = (__pyx_v_kk >= 0.0); if (__pyx_t_12) { } else { __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L7_bool_binop_done; } __pyx_t_12 = (__pyx_v_kk <= __pyx_v_kOut); __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = __pyx_t_3; __pyx_t_3 = 0; __pyx_L7_bool_binop_done:; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_any, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 4709, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_12) { /* … */ goto __pyx_L4; }
+4710: KK = [kk for kk in KK if kk>=0 and kk<=kOut]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_v_KK; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4710, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_kk = __pyx_t_14; __pyx_t_11 = ((__pyx_v_kk >= 0.0) != 0); if (__pyx_t_11) { } else { __pyx_t_12 = __pyx_t_11; goto __pyx_L12_bool_binop_done; } __pyx_t_11 = ((__pyx_v_kk <= __pyx_v_kOut) != 0); __pyx_t_12 = __pyx_t_11; __pyx_L12_bool_binop_done:; if (__pyx_t_12) { __pyx_t_10 = PyFloat_FromDouble(__pyx_v_kk); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 4710, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_KK, ((PyObject*)__pyx_t_1)); __pyx_t_1 = 0;
+4711: Pk = [(D0+kk*u0,D1+kk*u1,D2+kk*u2) for kk in KK]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_v_KK; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4711, __pyx_L1_error) #else __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); #endif __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_v_kk = __pyx_t_14; __pyx_t_10 = PyFloat_FromDouble((__pyx_v_D0 + (__pyx_v_kk * __pyx_v_u0))); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_3 = PyFloat_FromDouble((__pyx_v_D1 + (__pyx_v_kk * __pyx_v_u1))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyFloat_FromDouble((__pyx_v_D2 + (__pyx_v_kk * __pyx_v_u2))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_5); __pyx_t_10 = 0; __pyx_t_3 = 0; __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 4711, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Pk = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4712: Pk2D = [(Csqrt(pp[0]**2+pp[1]**2), pp[2]) for pp in Pk]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_v_Pk; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4712, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_pp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyNumber_Power(__pyx_t_9, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_pp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyNumber_Power(__pyx_t_9, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Add(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyFloat_FromDouble(sqrt(__pyx_t_14)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pp, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_9 = 0; __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 4712, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Pk2D = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4713: rk = [(pp[0]-RZ0)**2+(pp[1]-RZ1)**2 for pp in Pk2D]
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_v_Pk2D; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4713, __pyx_L1_error) #else __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_pp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_RZ0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = PyNumber_Subtract(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Power(__pyx_t_9, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_pp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_RZ1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_10 = PyNumber_Subtract(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Power(__pyx_t_10, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 4713, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_rk = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0;
+4714: kPMin = KK[rk.index(min(rk))]
__pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_rk); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_index, __pyx_v_rk, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_KK, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4714, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_kPMin = __pyx_t_14;
4715: else:
+4716: kPMin = min([Cabs(kk) for kk in KK]) # Else, take the one closest to D
/*else*/ {
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __pyx_v_KK; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4716, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_kk = __pyx_t_14;
__pyx_t_10 = PyFloat_FromDouble(fabs(__pyx_v_kk)); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
}
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4716, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_kPMin = __pyx_t_14;
}
__pyx_L4:;
4717: else:
+4718: Pk = [(D0+kk*u0,D1+kk*u1,D2+kk*u2) for kk in KK]
/*else*/ {
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = __pyx_v_KK; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
for (;;) {
if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4718, __pyx_L1_error)
#else
__pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
#endif
__pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_10); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
__pyx_v_kk = __pyx_t_14;
__pyx_t_10 = PyFloat_FromDouble((__pyx_v_D0 + (__pyx_v_kk * __pyx_v_u0))); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_5 = PyFloat_FromDouble((__pyx_v_D1 + (__pyx_v_kk * __pyx_v_u1))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_3 = PyFloat_FromDouble((__pyx_v_D2 + (__pyx_v_kk * __pyx_v_u2))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_3);
__pyx_t_10 = 0;
__pyx_t_5 = 0;
__pyx_t_3 = 0;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_9))) __PYX_ERR(0, 4718, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_v_Pk = ((PyObject*)__pyx_t_2);
__pyx_t_2 = 0;
+4719: Pk2D = [(Csqrt(pp[0]**2+pp[1]**2), pp[2]) for pp in Pk]
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_v_Pk; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4719, __pyx_L1_error) #else __pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_pp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyNumber_Power(__pyx_t_9, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_pp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = PyNumber_Power(__pyx_t_9, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = PyFloat_FromDouble(sqrt(__pyx_t_14)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_pp, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_9 = 0; __pyx_t_5 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 4719, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Pk2D = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+4720: rk = [(pp[0]-RZ0)**2+(pp[1]-RZ1)**2 for pp in Pk2D]
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __pyx_v_Pk2D; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0; for (;;) { if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_3); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4720, __pyx_L1_error) #else __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_pp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_RZ0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyNumber_Subtract(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Power(__pyx_t_9, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_pp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_RZ1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_10 = PyNumber_Subtract(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Power(__pyx_t_10, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = PyNumber_Add(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_10))) __PYX_ERR(0, 4720, __pyx_L1_error) __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_rk = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0;
+4721: kPMin = KK[rk.index(min(rk))]
__pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_rk); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyList_Type_index, __pyx_v_rk, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_KK, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4721, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_kPMin = __pyx_t_14; } __pyx_L3:;
+4722: return kPMin # + distance au cercle
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_kPMin); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
4723:
4724:
4725:
+4726: cdef LOS_sino_Tor(double D0, double D1, double D2, double u0, double u1,
static PyObject *__pyx_f_4tofu_4geom_5_GG03_LOS_sino_Tor(double __pyx_v_D0, double __pyx_v_D1, double __pyx_v_D2, double __pyx_v_u0, double __pyx_v_u1, double __pyx_v_u2, double __pyx_v_RZ0, double __pyx_v_RZ1, struct __pyx_opt_args_4tofu_4geom_5_GG03_LOS_sino_Tor *__pyx_optional_args) {
PyObject *__pyx_v_Mode = ((PyObject*)__pyx_n_s_LOS);
double __pyx_v_kOut = __pyx_k__87;
double __pyx_v_uN;
double __pyx_v_uParN;
double __pyx_v_DParN;
double __pyx_v_Sca;
double __pyx_v_ScaP;
double __pyx_v_kPMin;
double __pyx_v_PMin0;
double __pyx_v_PMin1;
double __pyx_v_PMin2;
double __pyx_v_PMin2norm;
double __pyx_v_PMin2D0;
double __pyx_v_PMin2D1;
double __pyx_v_RMin;
double __pyx_v_eTheta0;
double __pyx_v_eTheta1;
double __pyx_v_eTheta2;
double __pyx_v_vP0;
double __pyx_v_vP1;
double __pyx_v_Theta;
double __pyx_v_ImpTheta;
double __pyx_v_er2D0;
double __pyx_v_er2D1;
double __pyx_v_p;
double __pyx_v_uN0;
double __pyx_v_uN1;
double __pyx_v_uN2;
double __pyx_v_phi;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_sino_Tor", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_Mode = __pyx_optional_args->Mode;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_kOut = __pyx_optional_args->kOut;
}
}
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_AddTraceback("tofu.geom._GG03.LOS_sino_Tor", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_LOS_sino_Tor {
int __pyx_n;
PyObject *Mode;
double kOut;
};
+4727: double u2, double RZ0, double RZ1, str Mode='LOS', double kOut=np.inf):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_inf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4727, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_k__87 = __pyx_t_6;
4728:
+4729: cdef double uN = Csqrt(u0**2+u1**2+u2**2), uParN = Csqrt(u0**2+u1**2), DParN = Csqrt(D0**2+D1**2)
__pyx_v_uN = sqrt(((pow(__pyx_v_u0, 2.0) + pow(__pyx_v_u1, 2.0)) + pow(__pyx_v_u2, 2.0))); __pyx_v_uParN = sqrt((pow(__pyx_v_u0, 2.0) + pow(__pyx_v_u1, 2.0))); __pyx_v_DParN = sqrt((pow(__pyx_v_D0, 2.0) + pow(__pyx_v_D1, 2.0)));
+4730: cdef double Sca = u0*D0+u1*D1+u2*D2, ScaP = u0*D0+u1*D1
__pyx_v_Sca = (((__pyx_v_u0 * __pyx_v_D0) + (__pyx_v_u1 * __pyx_v_D1)) + (__pyx_v_u2 * __pyx_v_D2)); __pyx_v_ScaP = ((__pyx_v_u0 * __pyx_v_D0) + (__pyx_v_u1 * __pyx_v_D1));
4731: cdef double kPMin
+4732: if uParN == 0.:
__pyx_t_1 = ((__pyx_v_uParN == 0.) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+4733: kPMin = (RZ1-D2)/u2
__pyx_v_kPMin = ((__pyx_v_RZ1 - __pyx_v_D2) / __pyx_v_u2);
4734: else:
+4735: kPMin = LOS_sino_findRootkPMin_Tor(uParN, uN, Sca, RZ0, RZ1, ScaP, DParN, kOut, D0, D1, D2, u0, u1, u2, Mode=Mode)
/*else*/ {
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_LOS_sino_findRootkPMin_Tor); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_uParN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_3);
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_uN); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_Sca); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyFloat_FromDouble(__pyx_v_RZ0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = PyFloat_FromDouble(__pyx_v_RZ1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__pyx_t_8 = PyFloat_FromDouble(__pyx_v_ScaP); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_9 = PyFloat_FromDouble(__pyx_v_DParN); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_9);
__pyx_t_10 = PyFloat_FromDouble(__pyx_v_kOut); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_10);
__pyx_t_11 = PyFloat_FromDouble(__pyx_v_D0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = PyFloat_FromDouble(__pyx_v_D1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_13 = PyFloat_FromDouble(__pyx_v_D2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_13);
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_u0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_14);
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_u1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__pyx_t_16 = PyFloat_FromDouble(__pyx_v_u2); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = PyTuple_New(14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_GIVEREF(__pyx_t_3);
PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_3);
__Pyx_GIVEREF(__pyx_t_4);
PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_4);
__Pyx_GIVEREF(__pyx_t_5);
PyTuple_SET_ITEM(__pyx_t_17, 2, __pyx_t_5);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_17, 3, __pyx_t_6);
__Pyx_GIVEREF(__pyx_t_7);
PyTuple_SET_ITEM(__pyx_t_17, 4, __pyx_t_7);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_17, 5, __pyx_t_8);
__Pyx_GIVEREF(__pyx_t_9);
PyTuple_SET_ITEM(__pyx_t_17, 6, __pyx_t_9);
__Pyx_GIVEREF(__pyx_t_10);
PyTuple_SET_ITEM(__pyx_t_17, 7, __pyx_t_10);
__Pyx_GIVEREF(__pyx_t_11);
PyTuple_SET_ITEM(__pyx_t_17, 8, __pyx_t_11);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_17, 9, __pyx_t_12);
__Pyx_GIVEREF(__pyx_t_13);
PyTuple_SET_ITEM(__pyx_t_17, 10, __pyx_t_13);
__Pyx_GIVEREF(__pyx_t_14);
PyTuple_SET_ITEM(__pyx_t_17, 11, __pyx_t_14);
__Pyx_GIVEREF(__pyx_t_15);
PyTuple_SET_ITEM(__pyx_t_17, 12, __pyx_t_15);
__Pyx_GIVEREF(__pyx_t_16);
PyTuple_SET_ITEM(__pyx_t_17, 13, __pyx_t_16);
__pyx_t_3 = 0;
__pyx_t_4 = 0;
__pyx_t_5 = 0;
__pyx_t_6 = 0;
__pyx_t_7 = 0;
__pyx_t_8 = 0;
__pyx_t_9 = 0;
__pyx_t_10 = 0;
__pyx_t_11 = 0;
__pyx_t_12 = 0;
__pyx_t_13 = 0;
__pyx_t_14 = 0;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
__pyx_t_16 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
if (PyDict_SetItem(__pyx_t_16, __pyx_n_s_Mode, __pyx_v_Mode) < 0) __PYX_ERR(0, 4735, __pyx_L1_error)
__pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_17, __pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_18 = __pyx_PyFloat_AsDouble(__pyx_t_15); if (unlikely((__pyx_t_18 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4735, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_v_kPMin = __pyx_t_18;
}
__pyx_L3:;
+4736: cdef double PMin0 = D0+kPMin*u0, PMin1 = D1+kPMin*u1, PMin2 = D2+kPMin*u2
__pyx_v_PMin0 = (__pyx_v_D0 + (__pyx_v_kPMin * __pyx_v_u0)); __pyx_v_PMin1 = (__pyx_v_D1 + (__pyx_v_kPMin * __pyx_v_u1)); __pyx_v_PMin2 = (__pyx_v_D2 + (__pyx_v_kPMin * __pyx_v_u2));
+4737: cdef double PMin2norm = Csqrt(PMin0**2+PMin1**2)
__pyx_v_PMin2norm = sqrt((pow(__pyx_v_PMin0, 2.0) + pow(__pyx_v_PMin1, 2.0)));
+4738: cdef double PMin2D0 = PMin2norm, PMin2D1 = PMin2
__pyx_v_PMin2D0 = __pyx_v_PMin2norm; __pyx_v_PMin2D1 = __pyx_v_PMin2;
+4739: cdef double RMin = Csqrt((PMin2D0-RZ0)**2+(PMin2D1-RZ1)**2)
__pyx_v_RMin = sqrt((pow((__pyx_v_PMin2D0 - __pyx_v_RZ0), 2.0) + pow((__pyx_v_PMin2D1 - __pyx_v_RZ1), 2.0)));
+4740: cdef double eTheta0 = -PMin1/PMin2norm, eTheta1 = PMin0/PMin2norm, eTheta2 = 0.
__pyx_v_eTheta0 = ((-__pyx_v_PMin1) / __pyx_v_PMin2norm); __pyx_v_eTheta1 = (__pyx_v_PMin0 / __pyx_v_PMin2norm); __pyx_v_eTheta2 = 0.;
+4741: cdef double vP0 = PMin2D0-RZ0, vP1 = PMin2D1-RZ1
__pyx_v_vP0 = (__pyx_v_PMin2D0 - __pyx_v_RZ0); __pyx_v_vP1 = (__pyx_v_PMin2D1 - __pyx_v_RZ1);
+4742: cdef double Theta = Catan2(vP1,vP0)
__pyx_v_Theta = atan2(__pyx_v_vP1, __pyx_v_vP0);
+4743: cdef double ImpTheta = Theta if Theta>=0 else Theta + np.pi
if (((__pyx_v_Theta >= 0.0) != 0)) {
__pyx_t_18 = __pyx_v_Theta;
} else {
__pyx_t_15 = PyFloat_FromDouble(__pyx_v_Theta); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_pi); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_16 = PyNumber_Add(__pyx_t_15, __pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4743, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_16);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_16); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4743, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
__pyx_t_18 = __pyx_t_19;
}
__pyx_v_ImpTheta = __pyx_t_18;
+4744: cdef double er2D0 = Ccos(ImpTheta), er2D1 = Csin(ImpTheta)
__pyx_v_er2D0 = cos(__pyx_v_ImpTheta); __pyx_v_er2D1 = sin(__pyx_v_ImpTheta);
+4745: cdef double p = vP0*er2D0 + vP1*er2D1
__pyx_v_p = ((__pyx_v_vP0 * __pyx_v_er2D0) + (__pyx_v_vP1 * __pyx_v_er2D1));
+4746: cdef double uN0 = u0/uN, uN1 = u1/uN, uN2 = u2/uN
__pyx_v_uN0 = (__pyx_v_u0 / __pyx_v_uN); __pyx_v_uN1 = (__pyx_v_u1 / __pyx_v_uN); __pyx_v_uN2 = (__pyx_v_u2 / __pyx_v_uN);
+4747: cdef double phi = Casin(-uN0*eTheta0 -uN1*eTheta1 -uN2*eTheta2)
__pyx_v_phi = asin(((((-__pyx_v_uN0) * __pyx_v_eTheta0) - (__pyx_v_uN1 * __pyx_v_eTheta1)) - (__pyx_v_uN2 * __pyx_v_eTheta2)));
+4748: return (PMin0,PMin1,PMin2), kPMin, RMin, Theta, p, ImpTheta, phi
__Pyx_XDECREF(__pyx_r); __pyx_t_16 = PyFloat_FromDouble(__pyx_v_PMin0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_PMin1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_15 = PyFloat_FromDouble(__pyx_v_PMin2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_15); __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_15 = 0; __pyx_t_15 = PyFloat_FromDouble(__pyx_v_kPMin); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_17 = PyFloat_FromDouble(__pyx_v_RMin); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_17); __pyx_t_16 = PyFloat_FromDouble(__pyx_v_Theta); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __pyx_t_14 = PyFloat_FromDouble(__pyx_v_p); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_13 = PyFloat_FromDouble(__pyx_v_ImpTheta); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_phi); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_11 = PyTuple_New(7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_17); __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_16); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_11, 4, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_11, 5, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 6, __pyx_t_12); __pyx_t_2 = 0; __pyx_t_15 = 0; __pyx_t_17 = 0; __pyx_t_16 = 0; __pyx_t_14 = 0; __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_r = __pyx_t_11; __pyx_t_11 = 0; goto __pyx_L0;
4749:
4750:
4751:
+4752: cdef inline void NEW_LOS_sino_Tor(double orig0, double orig1, double orig2,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_NEW_LOS_sino_Tor(double __pyx_v_orig0, double __pyx_v_orig1, double __pyx_v_orig2, double __pyx_v_dirv0, double __pyx_v_dirv1, double __pyx_v_dirv2, double __pyx_v_circ_radius, double __pyx_v_circ_normz, double *__pyx_v_results, struct __pyx_opt_args_4tofu_4geom_5_GG03_NEW_LOS_sino_Tor *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_WriteUnraisable("tofu.geom._GG03.NEW_LOS_sino_Tor", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_RefNannyFinishContext();
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_NEW_LOS_sino_Tor {
int __pyx_n;
int is_LOS_Mode;
double kOut;
};
4753: double dirv0, double dirv1, double dirv2,
4754: double circ_radius, double circ_normz,
4755: double[9] results,
+4756: bint is_LOS_Mode=False,
int __pyx_v_is_LOS_Mode = ((int)0); double __pyx_v_kOut = __pyx_k__88; double __pyx_v_dirv[3]; double __pyx_v_orig[3]; double __pyx_v_res[2]; double __pyx_v_normu; double __pyx_v_normu_sqr; double __pyx_v_kPMin; double __pyx_v_PMin0; double __pyx_v_PMin1; double __pyx_v_PMin2; double __pyx_v_PMin2norm; double __pyx_v_RMin; double __pyx_v_vP0; double __pyx_v_vP1; double __pyx_v_Theta; double __pyx_v_ImpTheta; double __pyx_v_er2D0; double __pyx_v_er2D1; double __pyx_v_p0; double __pyx_v_eTheta0; double __pyx_v_eTheta1; double __pyx_v_normu0; double __pyx_v_normu1; double __pyx_v_phi; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("NEW_LOS_sino_Tor", 0); if (__pyx_optional_args) { if (__pyx_optional_args->__pyx_n > 0) { __pyx_v_is_LOS_Mode = __pyx_optional_args->is_LOS_Mode; if (__pyx_optional_args->__pyx_n > 1) { __pyx_v_kOut = __pyx_optional_args->kOut; } } }
+4757: double kOut=np.inf) :
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_inf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4757, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_k__88 = __pyx_t_6;
4758: cdef double[3] dirv, orig
4759: cdef double[2] res
4760: cdef double normu, normu_sqr
4761: cdef double kPMin
4762:
+4763: normu_sqr = dirv0 * dirv0 + dirv1 * dirv1 + dirv2 * dirv2
__pyx_v_normu_sqr = (((__pyx_v_dirv0 * __pyx_v_dirv0) + (__pyx_v_dirv1 * __pyx_v_dirv1)) + (__pyx_v_dirv2 * __pyx_v_dirv2));
+4764: normu = Csqrt(normu_sqr)
__pyx_v_normu = sqrt(__pyx_v_normu_sqr);
+4765: dirv[0] = dirv0
(__pyx_v_dirv[0]) = __pyx_v_dirv0;
+4766: dirv[2] = dirv2
(__pyx_v_dirv[2]) = __pyx_v_dirv2;
+4767: dirv[1] = dirv1
(__pyx_v_dirv[1]) = __pyx_v_dirv1;
+4768: orig[0] = orig0
(__pyx_v_orig[0]) = __pyx_v_orig0;
+4769: orig[1] = orig1
(__pyx_v_orig[1]) = __pyx_v_orig1;
+4770: orig[2] = orig2
(__pyx_v_orig[2]) = __pyx_v_orig2;
4771:
+4772: if dirv0 == 0. and dirv1 == 0.:
__pyx_t_2 = ((__pyx_v_dirv0 == 0.) != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_dirv1 == 0.) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L4_bool_binop_done:;
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+4773: kPMin = (circ_normz-orig2)/dirv2
__pyx_v_kPMin = ((__pyx_v_circ_normz - __pyx_v_orig2) / __pyx_v_dirv2);
4774: else:
+4775: dist_los_circle_core(dirv, orig,
/*else*/ {
/* … */
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_dirv, __pyx_v_orig, __pyx_v_circ_radius, __pyx_v_circ_normz, __pyx_v_normu_sqr, __pyx_v_res);
4776: circ_radius, circ_normz,
4777: normu_sqr, res)
+4778: kPMin = res[0]
__pyx_v_kPMin = (__pyx_v_res[0]);
+4779: if is_LOS_Mode and kPMin > kOut:
__pyx_t_2 = (__pyx_v_is_LOS_Mode != 0);
if (__pyx_t_2) {
} else {
__pyx_t_1 = __pyx_t_2;
goto __pyx_L7_bool_binop_done;
}
__pyx_t_2 = ((__pyx_v_kPMin > __pyx_v_kOut) != 0);
__pyx_t_1 = __pyx_t_2;
__pyx_L7_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
}
__pyx_L3:;
+4780: kPMin = kOut
__pyx_v_kPMin = __pyx_v_kOut;
4781:
4782: # Computing the point's coordinates.........................................
+4783: cdef double PMin0 = orig0 + kPMin * dirv0
__pyx_v_PMin0 = (__pyx_v_orig0 + (__pyx_v_kPMin * __pyx_v_dirv0));
+4784: cdef double PMin1 = orig1 + kPMin * dirv1
__pyx_v_PMin1 = (__pyx_v_orig1 + (__pyx_v_kPMin * __pyx_v_dirv1));
+4785: cdef double PMin2 = orig2 + kPMin * dirv2
__pyx_v_PMin2 = (__pyx_v_orig2 + (__pyx_v_kPMin * __pyx_v_dirv2));
+4786: cdef double PMin2norm = Csqrt(PMin0**2+PMin1**2)
__pyx_v_PMin2norm = sqrt((pow(__pyx_v_PMin0, 2.0) + pow(__pyx_v_PMin1, 2.0)));
+4787: cdef double RMin = Csqrt((PMin2norm - circ_radius)**2
__pyx_v_RMin = sqrt((pow((__pyx_v_PMin2norm - __pyx_v_circ_radius), 2.0) + pow((__pyx_v_PMin2 - __pyx_v_circ_normz), 2.0)));
4788: + (PMin2 - circ_normz)**2)
+4789: cdef double vP0 = PMin2norm - circ_radius
__pyx_v_vP0 = (__pyx_v_PMin2norm - __pyx_v_circ_radius);
+4790: cdef double vP1 = PMin2 - circ_normz
__pyx_v_vP1 = (__pyx_v_PMin2 - __pyx_v_circ_normz);
+4791: cdef double Theta = Catan2(vP1, vP0)
__pyx_v_Theta = atan2(__pyx_v_vP1, __pyx_v_vP0);
+4792: cdef double ImpTheta = Theta if Theta>=0 else Theta + np.pi
if (((__pyx_v_Theta >= 0.0) != 0)) {
__pyx_t_3 = __pyx_v_Theta;
} else {
__pyx_t_4 = PyFloat_FromDouble(__pyx_v_Theta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_pi); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4792, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_7 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_7 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4792, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_3 = __pyx_t_7;
}
__pyx_v_ImpTheta = __pyx_t_3;
+4793: cdef double er2D0 = Ccos(ImpTheta)
__pyx_v_er2D0 = cos(__pyx_v_ImpTheta);
+4794: cdef double er2D1 = Csin(ImpTheta)
__pyx_v_er2D1 = sin(__pyx_v_ImpTheta);
+4795: cdef double p0 = vP0*er2D0 + vP1*er2D1
__pyx_v_p0 = ((__pyx_v_vP0 * __pyx_v_er2D0) + (__pyx_v_vP1 * __pyx_v_er2D1));
+4796: cdef double eTheta0 = -PMin1 / PMin2norm
__pyx_v_eTheta0 = ((-__pyx_v_PMin1) / __pyx_v_PMin2norm);
+4797: cdef double eTheta1 = PMin0 / PMin2norm
__pyx_v_eTheta1 = (__pyx_v_PMin0 / __pyx_v_PMin2norm);
+4798: cdef double normu0 = dirv0/normu
__pyx_v_normu0 = (__pyx_v_dirv0 / __pyx_v_normu);
+4799: cdef double normu1 = dirv1/normu
__pyx_v_normu1 = (__pyx_v_dirv1 / __pyx_v_normu);
+4800: cdef double phi = Casin(-normu0 * eTheta0 - normu1 * eTheta1)
__pyx_v_phi = asin((((-__pyx_v_normu0) * __pyx_v_eTheta0) - (__pyx_v_normu1 * __pyx_v_eTheta1)));
4801: # Filling the results ......................................................
+4802: results[0] = PMin0
(__pyx_v_results[0]) = __pyx_v_PMin0;
+4803: results[1] = PMin1
(__pyx_v_results[1]) = __pyx_v_PMin1;
+4804: results[2] = PMin2
(__pyx_v_results[2]) = __pyx_v_PMin2;
+4805: results[3] = kPMin
(__pyx_v_results[3]) = __pyx_v_kPMin;
+4806: results[4] = RMin
(__pyx_v_results[4]) = __pyx_v_RMin;
+4807: results[5] = Theta
(__pyx_v_results[5]) = __pyx_v_Theta;
+4808: results[6] = p0
(__pyx_v_results[6]) = __pyx_v_p0;
+4809: results[7] = ImpTheta
(__pyx_v_results[7]) = __pyx_v_ImpTheta;
+4810: results[8] = phi
(__pyx_v_results[8]) = __pyx_v_phi;
+4811: return
goto __pyx_L0;
4812:
+4813: cdef inline void NEW_los_sino_tor_vec(int num_los,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_NEW_los_sino_tor_vec(CYTHON_UNUSED int __pyx_v_num_los, __Pyx_memviewslice __pyx_v_origins, __Pyx_memviewslice __pyx_v_directions, double __pyx_v_circ_radius, double __pyx_v_circ_normz, __Pyx_memviewslice __pyx_v_los_closest_coords, __Pyx_memviewslice __pyx_v_los_closest_coeffs, __Pyx_memviewslice __pyx_v_circle_closest_rmin, __Pyx_memviewslice __pyx_v_circle_closest_theta, __Pyx_memviewslice __pyx_v_circle_closest_p, __Pyx_memviewslice __pyx_v_circle_closest_imptheta, __Pyx_memviewslice __pyx_v_circle_closest_phi, struct __pyx_opt_args_4tofu_4geom_5_GG03_NEW_los_sino_tor_vec *__pyx_optional_args) {
/* … */
/* function exit code */
__pyx_L0:;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_NEW_los_sino_tor_vec {
int __pyx_n;
int is_LOS_Mode;
__Pyx_memviewslice kOut;
};
4814: double[:,::1] origins,
4815: double[:,::1] directions,
4816: double circ_radius,
4817: double circ_normz,
4818: double[:,::1] los_closest_coords,
4819: double[::1] los_closest_coeffs,
4820: double[::1] circle_closest_rmin,
4821: double[::1] circle_closest_theta,
4822: double[::1] circle_closest_p,
4823: double[::1] circle_closest_imptheta,
4824: double[::1] circle_closest_phi,
+4825: bint is_LOS_Mode=False,
int __pyx_v_is_LOS_Mode = ((int)0);
__Pyx_memviewslice __pyx_v_kOut = __pyx_k__89;
int __pyx_v_ind_los;
double *__pyx_v_dirv;
double *__pyx_v_orig;
double *__pyx_v_res;
double __pyx_v_normu;
double __pyx_v_normu_sq;
double __pyx_v_kPMin;
double __pyx_v_PMin2norm;
double __pyx_v_vP0;
double __pyx_v_vP1;
double __pyx_v_Theta;
double __pyx_v_eTheta0;
double __pyx_v_eTheta1;
double __pyx_v_normu0;
double __pyx_v_normu1;
CYTHON_UNUSED double __pyx_v_distance;
double __pyx_v_PMin0;
double __pyx_v_PMin1;
double __pyx_v_PMin2;
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_is_LOS_Mode = __pyx_optional_args->is_LOS_Mode;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_kOut = __pyx_optional_args->kOut;
}
}
}
+4826: double[::1] kOut=None) nogil:
__pyx_t_5 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(Py_None, PyBUF_WRITABLE); if (unlikely(!__pyx_t_5.memview)) __PYX_ERR(0, 4826, __pyx_L1_error) __pyx_k__89 = __pyx_t_5; __pyx_t_5.memview = NULL; __pyx_t_5.data = NULL;
4827: cdef int ind_los
4828: cdef double* dirv
4829: cdef double* orig
4830: cdef double* res
4831: cdef double normu, normu_sq
4832: cdef double kPMin, PMin2norm, vP0, vP1, Theta
4833: cdef double eTheta0
4834: cdef double eTheta1
4835: cdef double normu0
4836: cdef double normu1
4837: cdef double distance
4838: cdef double PMin0, PMin1, PMin2
4839:
+4840: with nogil, parallel():
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_dirv, __pyx_v_orig, __pyx_v_res)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_dirv = ((double *)1);
__pyx_v_orig = ((double *)1);
__pyx_v_res = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+4841: dirv = <double*>malloc(3*sizeof(double))
__pyx_v_dirv = ((double *)malloc((3 * (sizeof(double)))));
+4842: orig = <double*>malloc(3*sizeof(double))
__pyx_v_orig = ((double *)malloc((3 * (sizeof(double)))));
+4843: res = <double*>malloc(2*sizeof(double))
__pyx_v_res = ((double *)malloc((2 * (sizeof(double)))));
+4844: for ind_los in prange(num_los):
__pyx_t_1 = __pyx_v_num_los;
if (1 == 0) abort();
{
__pyx_t_3 = (__pyx_t_1 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_3 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_PMin0) lastprivate(__pyx_v_PMin1) lastprivate(__pyx_v_PMin2) lastprivate(__pyx_v_PMin2norm) lastprivate(__pyx_v_Theta) lastprivate(__pyx_v_distance) lastprivate(__pyx_v_eTheta0) lastprivate(__pyx_v_eTheta1) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_kPMin) lastprivate(__pyx_v_normu) lastprivate(__pyx_v_normu0) lastprivate(__pyx_v_normu1) lastprivate(__pyx_v_normu_sq) lastprivate(__pyx_v_vP0) lastprivate(__pyx_v_vP1)
#endif /* _OPENMP */
for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_3; __pyx_t_2++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_2);
/* Initialize private variables to invalid values */
__pyx_v_PMin0 = ((double)__PYX_NAN());
__pyx_v_PMin1 = ((double)__PYX_NAN());
__pyx_v_PMin2 = ((double)__PYX_NAN());
__pyx_v_PMin2norm = ((double)__PYX_NAN());
__pyx_v_Theta = ((double)__PYX_NAN());
__pyx_v_distance = ((double)__PYX_NAN());
__pyx_v_eTheta0 = ((double)__PYX_NAN());
__pyx_v_eTheta1 = ((double)__PYX_NAN());
__pyx_v_kPMin = ((double)__PYX_NAN());
__pyx_v_normu = ((double)__PYX_NAN());
__pyx_v_normu0 = ((double)__PYX_NAN());
__pyx_v_normu1 = ((double)__PYX_NAN());
__pyx_v_normu_sq = ((double)__PYX_NAN());
__pyx_v_vP0 = ((double)__PYX_NAN());
__pyx_v_vP1 = ((double)__PYX_NAN());
+4845: dirv[0] = directions[0, ind_los]
__pyx_t_4 = 0;
__pyx_t_5 = __pyx_v_ind_los;
(__pyx_v_dirv[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_directions.data + __pyx_t_4 * __pyx_v_directions.strides[0]) )) + __pyx_t_5)) )));
+4846: dirv[1] = directions[1, ind_los]
__pyx_t_6 = 1;
__pyx_t_7 = __pyx_v_ind_los;
(__pyx_v_dirv[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_directions.data + __pyx_t_6 * __pyx_v_directions.strides[0]) )) + __pyx_t_7)) )));
+4847: dirv[2] = directions[2, ind_los]
__pyx_t_8 = 2;
__pyx_t_9 = __pyx_v_ind_los;
(__pyx_v_dirv[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_directions.data + __pyx_t_8 * __pyx_v_directions.strides[0]) )) + __pyx_t_9)) )));
+4848: orig[0] = origins[0, ind_los]
__pyx_t_10 = 0;
__pyx_t_11 = __pyx_v_ind_los;
(__pyx_v_orig[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_origins.data + __pyx_t_10 * __pyx_v_origins.strides[0]) )) + __pyx_t_11)) )));
+4849: orig[1] = origins[1, ind_los]
__pyx_t_12 = 1;
__pyx_t_13 = __pyx_v_ind_los;
(__pyx_v_orig[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_origins.data + __pyx_t_12 * __pyx_v_origins.strides[0]) )) + __pyx_t_13)) )));
+4850: orig[2] = origins[2, ind_los]
__pyx_t_14 = 2;
__pyx_t_15 = __pyx_v_ind_los;
(__pyx_v_orig[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_origins.data + __pyx_t_14 * __pyx_v_origins.strides[0]) )) + __pyx_t_15)) )));
+4851: normu_sq = dirv[0] * dirv[0] + dirv[1] * dirv[1] + dirv[2] * dirv[2]
__pyx_v_normu_sq = ((((__pyx_v_dirv[0]) * (__pyx_v_dirv[0])) + ((__pyx_v_dirv[1]) * (__pyx_v_dirv[1]))) + ((__pyx_v_dirv[2]) * (__pyx_v_dirv[2])));
+4852: normu = Csqrt(normu_sq)
__pyx_v_normu = sqrt(__pyx_v_normu_sq);
4853: # Computing coeff of closest on line................................
+4854: if dirv[0] == 0. and dirv[1] == 0.:
__pyx_t_17 = (((__pyx_v_dirv[0]) == 0.) != 0);
if (__pyx_t_17) {
} else {
__pyx_t_16 = __pyx_t_17;
goto __pyx_L15_bool_binop_done;
}
__pyx_t_17 = (((__pyx_v_dirv[1]) == 0.) != 0);
__pyx_t_16 = __pyx_t_17;
__pyx_L15_bool_binop_done:;
if (__pyx_t_16) {
/* … */
goto __pyx_L14;
}
+4855: kPMin = (circ_normz-orig[2])/dirv[2]
__pyx_v_kPMin = ((__pyx_v_circ_normz - (__pyx_v_orig[2])) / (__pyx_v_dirv[2]));
4856: else:
+4857: dist_los_circle_core(dirv, orig, circ_radius,
/*else*/ {
/* … */
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_dirv, __pyx_v_orig, __pyx_v_circ_radius, __pyx_v_circ_normz, __pyx_v_normu_sq, __pyx_v_res);
4858: circ_normz, normu_sq, res)
+4859: kPMin = res[0]
__pyx_v_kPMin = (__pyx_v_res[0]);
+4860: distance = res[1]
__pyx_v_distance = (__pyx_v_res[1]);
}
__pyx_L14:;
+4861: if is_LOS_Mode and kOut is not None and kPMin > kOut[ind_los]:
__pyx_t_17 = (__pyx_v_is_LOS_Mode != 0);
if (__pyx_t_17) {
} else {
__pyx_t_16 = __pyx_t_17;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_17 = ((((PyObject *) __pyx_v_kOut.memview) != Py_None) != 0);
if (__pyx_t_17) {
} else {
__pyx_t_16 = __pyx_t_17;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_18 = __pyx_v_ind_los;
__pyx_t_17 = ((__pyx_v_kPMin > (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kOut.data) + __pyx_t_18)) )))) != 0);
__pyx_t_16 = __pyx_t_17;
__pyx_L18_bool_binop_done:;
if (__pyx_t_16) {
/* … */
}
+4862: kPMin = kOut[ind_los]
__pyx_t_19 = __pyx_v_ind_los;
__pyx_v_kPMin = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kOut.data) + __pyx_t_19)) )));
+4863: los_closest_coeffs[ind_los] = kPMin
__pyx_t_20 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_los_closest_coeffs.data) + __pyx_t_20)) )) = __pyx_v_kPMin;
4864:
4865: # Computing the info of the closest point on LOS & Circle...........
+4866: PMin0 = orig[0] + kPMin * dirv[0]
__pyx_v_PMin0 = ((__pyx_v_orig[0]) + (__pyx_v_kPMin * (__pyx_v_dirv[0])));
+4867: PMin1 = orig[1] + kPMin * dirv[1]
__pyx_v_PMin1 = ((__pyx_v_orig[1]) + (__pyx_v_kPMin * (__pyx_v_dirv[1])));
+4868: PMin2 = orig[2] + kPMin * dirv[2]
__pyx_v_PMin2 = ((__pyx_v_orig[2]) + (__pyx_v_kPMin * (__pyx_v_dirv[2])));
+4869: los_closest_coords[0, ind_los] = PMin0
__pyx_t_21 = 0;
__pyx_t_22 = __pyx_v_ind_los;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_los_closest_coords.data + __pyx_t_21 * __pyx_v_los_closest_coords.strides[0]) )) + __pyx_t_22)) )) = __pyx_v_PMin0;
+4870: los_closest_coords[1, ind_los] = PMin1
__pyx_t_23 = 1;
__pyx_t_24 = __pyx_v_ind_los;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_los_closest_coords.data + __pyx_t_23 * __pyx_v_los_closest_coords.strides[0]) )) + __pyx_t_24)) )) = __pyx_v_PMin1;
+4871: los_closest_coords[2, ind_los] = PMin2
__pyx_t_25 = 2;
__pyx_t_26 = __pyx_v_ind_los;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_los_closest_coords.data + __pyx_t_25 * __pyx_v_los_closest_coords.strides[0]) )) + __pyx_t_26)) )) = __pyx_v_PMin2;
4872: # Computing RMin:
+4873: PMin2norm = Csqrt(PMin0**2+PMin1**2)
__pyx_v_PMin2norm = sqrt((pow(__pyx_v_PMin0, 2.0) + pow(__pyx_v_PMin1, 2.0)));
+4874: circle_closest_rmin[ind_los] = Csqrt((PMin2norm - circ_radius)**2
__pyx_t_27 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_circle_closest_rmin.data) + __pyx_t_27)) )) = sqrt((pow((__pyx_v_PMin2norm - __pyx_v_circ_radius), 2.0) + pow((__pyx_v_PMin2 - __pyx_v_circ_normz), 2.0)));
4875: + (PMin2 - circ_normz)**2)
4876: # Theta and ImpTheta:
+4877: vP0 = PMin2norm - circ_radius
__pyx_v_vP0 = (__pyx_v_PMin2norm - __pyx_v_circ_radius);
+4878: vP1 = PMin2 - circ_normz
__pyx_v_vP1 = (__pyx_v_PMin2 - __pyx_v_circ_normz);
+4879: Theta = Catan2(vP1, vP0)
__pyx_v_Theta = atan2(__pyx_v_vP1, __pyx_v_vP0);
+4880: circle_closest_theta[ind_los] = Theta
__pyx_t_28 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_circle_closest_theta.data) + __pyx_t_28)) )) = __pyx_v_Theta;
+4881: if Theta < 0:
__pyx_t_16 = ((__pyx_v_Theta < 0.0) != 0);
if (__pyx_t_16) {
/* … */
}
+4882: Theta = Theta + Cpi
__pyx_v_Theta = (__pyx_v_Theta + M_PI);
+4883: circle_closest_imptheta[ind_los] = Theta
__pyx_t_29 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_circle_closest_imptheta.data) + __pyx_t_29)) )) = __pyx_v_Theta;
+4884: circle_closest_p[ind_los] = vP0 * Ccos(Theta) + vP1 * Csin(Theta)
__pyx_t_30 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_circle_closest_p.data) + __pyx_t_30)) )) = ((__pyx_v_vP0 * cos(__pyx_v_Theta)) + (__pyx_v_vP1 * sin(__pyx_v_Theta)));
4885: # Phi:
+4886: eTheta0 = - PMin1 / PMin2norm
__pyx_v_eTheta0 = ((-__pyx_v_PMin1) / __pyx_v_PMin2norm);
+4887: eTheta1 = PMin0 / PMin2norm
__pyx_v_eTheta1 = (__pyx_v_PMin0 / __pyx_v_PMin2norm);
+4888: normu0 = dirv[0]/normu
__pyx_v_normu0 = ((__pyx_v_dirv[0]) / __pyx_v_normu);
+4889: normu1 = dirv[1]/normu
__pyx_v_normu1 = ((__pyx_v_dirv[1]) / __pyx_v_normu);
+4890: circle_closest_phi[ind_los] = Casin(-normu0 * eTheta0 - normu1 * eTheta1)
__pyx_t_31 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_circle_closest_phi.data) + __pyx_t_31)) )) = asin((((-__pyx_v_normu0) * __pyx_v_eTheta0) - (__pyx_v_normu1 * __pyx_v_eTheta1)));
}
}
}
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+4891: return
goto __pyx_L0;
4892:
4893:
4894:
+4895: cdef LOS_sino_Lin(double D0, double D1, double D2, double u0, double u1, double u2, double RZ0, double RZ1, str Mode='LOS', double kOut=np.inf):
static PyObject *__pyx_f_4tofu_4geom_5_GG03_LOS_sino_Lin(double __pyx_v_D0, double __pyx_v_D1, double __pyx_v_D2, double __pyx_v_u0, double __pyx_v_u1, double __pyx_v_u2, double __pyx_v_RZ0, double __pyx_v_RZ1, struct __pyx_opt_args_4tofu_4geom_5_GG03_LOS_sino_Lin *__pyx_optional_args) {
PyObject *__pyx_v_Mode = ((PyObject*)__pyx_n_s_LOS);
double __pyx_v_kOut = __pyx_k__90;
double __pyx_v_kPMin;
double __pyx_v_PMin0;
double __pyx_v_PMin1;
double __pyx_v_PMin2;
double __pyx_v_RMin;
double __pyx_v_vP0;
double __pyx_v_vP1;
double __pyx_v_Theta;
double __pyx_v_ImpTheta;
double __pyx_v_er2D0;
double __pyx_v_er2D1;
double __pyx_v_p0;
double __pyx_v_uN;
double __pyx_v_uN0;
double __pyx_v_uN1;
double __pyx_v_uN2;
double __pyx_v_phi;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_sino_Lin", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_Mode = __pyx_optional_args->Mode;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_kOut = __pyx_optional_args->kOut;
}
}
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_9);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_AddTraceback("tofu.geom._GG03.LOS_sino_Lin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_inf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_6 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_6 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4895, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_k__90 = __pyx_t_6;
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_LOS_sino_Lin {
int __pyx_n;
PyObject *Mode;
double kOut;
};
4896: cdef double kPMin
+4897: if u0**2==1.:
__pyx_t_1 = ((pow(__pyx_v_u0, 2.0) == 1.) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L3;
}
+4898: kPMin = 0.
__pyx_v_kPMin = 0.;
4899: else:
+4900: kPMin = ( (RZ0-D1)*u1+(RZ1-D2)*u2 ) / (1-u0**2)
/*else*/ {
__pyx_v_kPMin = ((((__pyx_v_RZ0 - __pyx_v_D1) * __pyx_v_u1) + ((__pyx_v_RZ1 - __pyx_v_D2) * __pyx_v_u2)) / (1.0 - pow(__pyx_v_u0, 2.0)));
}
__pyx_L3:;
+4901: kPMin = kOut if Mode=='LOS' and kPMin > kOut else kPMin
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_Mode, __pyx_n_s_LOS, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4901, __pyx_L1_error) __pyx_t_4 = (__pyx_t_3 != 0); if (__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_4 = ((__pyx_v_kPMin > __pyx_v_kOut) != 0); __pyx_t_1 = __pyx_t_4; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { __pyx_t_2 = __pyx_v_kOut; } else { __pyx_t_2 = __pyx_v_kPMin; } __pyx_v_kPMin = __pyx_t_2;
+4902: cdef double PMin0 = D0+kPMin*u0, PMin1 = D1+kPMin*u1, PMin2 = D2+kPMin*u2
__pyx_v_PMin0 = (__pyx_v_D0 + (__pyx_v_kPMin * __pyx_v_u0)); __pyx_v_PMin1 = (__pyx_v_D1 + (__pyx_v_kPMin * __pyx_v_u1)); __pyx_v_PMin2 = (__pyx_v_D2 + (__pyx_v_kPMin * __pyx_v_u2));
+4903: cdef double RMin = Csqrt((PMin1-RZ0)**2+(PMin2-RZ1)**2)
__pyx_v_RMin = sqrt((pow((__pyx_v_PMin1 - __pyx_v_RZ0), 2.0) + pow((__pyx_v_PMin2 - __pyx_v_RZ1), 2.0)));
+4904: cdef double vP0 = PMin1-RZ0, vP1 = PMin2-RZ1
__pyx_v_vP0 = (__pyx_v_PMin1 - __pyx_v_RZ0); __pyx_v_vP1 = (__pyx_v_PMin2 - __pyx_v_RZ1);
+4905: cdef double Theta = Catan2(vP1,vP0)
__pyx_v_Theta = atan2(__pyx_v_vP1, __pyx_v_vP0);
+4906: cdef double ImpTheta = Theta if Theta>=0 else Theta + np.pi
if (((__pyx_v_Theta >= 0.0) != 0)) {
__pyx_t_2 = __pyx_v_Theta;
} else {
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_Theta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_pi); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_7);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4906, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
__pyx_t_8 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_8 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4906, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_2 = __pyx_t_8;
}
__pyx_v_ImpTheta = __pyx_t_2;
+4907: cdef double er2D0 = Ccos(ImpTheta), er2D1 = Csin(ImpTheta)
__pyx_v_er2D0 = cos(__pyx_v_ImpTheta); __pyx_v_er2D1 = sin(__pyx_v_ImpTheta);
+4908: cdef double p0 = vP0*er2D0 + vP1*er2D1
__pyx_v_p0 = ((__pyx_v_vP0 * __pyx_v_er2D0) + (__pyx_v_vP1 * __pyx_v_er2D1));
+4909: cdef double uN = Csqrt(u0**2+u1**2+u2**2)
__pyx_v_uN = sqrt(((pow(__pyx_v_u0, 2.0) + pow(__pyx_v_u1, 2.0)) + pow(__pyx_v_u2, 2.0)));
+4910: cdef double uN0 = u0/uN, uN1 = u1/uN, uN2 = u2/uN
__pyx_v_uN0 = (__pyx_v_u0 / __pyx_v_uN); __pyx_v_uN1 = (__pyx_v_u1 / __pyx_v_uN); __pyx_v_uN2 = (__pyx_v_u2 / __pyx_v_uN);
+4911: cdef double phi = Catan2(uN0, Csqrt(uN1**2+uN2**2))
__pyx_v_phi = atan2(__pyx_v_uN0, sqrt((pow(__pyx_v_uN1, 2.0) + pow(__pyx_v_uN2, 2.0))));
+4912: return (PMin0,PMin1,PMin2), kPMin, RMin, Theta, p0, ImpTheta, phi
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_PMin0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_PMin1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyFloat_FromDouble(__pyx_v_PMin2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_5); __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble(__pyx_v_kPMin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = PyFloat_FromDouble(__pyx_v_RMin); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = PyFloat_FromDouble(__pyx_v_Theta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_10 = PyFloat_FromDouble(__pyx_v_p0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyFloat_FromDouble(__pyx_v_ImpTheta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyFloat_FromDouble(__pyx_v_phi); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = PyTuple_New(7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4912, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_13, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_13, 4, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 5, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 6, __pyx_t_12); __pyx_t_9 = 0; __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_r = __pyx_t_13; __pyx_t_13 = 0; goto __pyx_L0;
4913:
4914:
+4915: def LOS_sino(double[:,::1] D, double[:,::1] u, double[::1] RZ, double[::1] kOut,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_61LOS_sino(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_61LOS_sino = {"LOS_sino", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_61LOS_sino, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_61LOS_sino(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_D = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_u = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_RZ = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_kOut = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_Mode = 0;
PyObject *__pyx_v_VType = 0;
int __pyx_v_try_new_algo;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_sino (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_D,&__pyx_n_s_u,&__pyx_n_s_RZ,&__pyx_n_s_kOut,&__pyx_n_s_Mode,&__pyx_n_s_VType,&__pyx_n_s_try_new_algo,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
values[4] = ((PyObject*)__pyx_n_s_LOS);
values[5] = ((PyObject*)__pyx_n_s_Tor);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino", 0, 4, 7, 1); __PYX_ERR(0, 4915, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RZ)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino", 0, 4, 7, 2); __PYX_ERR(0, 4915, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kOut)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("LOS_sino", 0, 4, 7, 3); __PYX_ERR(0, 4915, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Mode);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VType);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_try_new_algo);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "LOS_sino") < 0)) __PYX_ERR(0, 4915, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_D = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_D.memview)) __PYX_ERR(0, 4915, __pyx_L3_error)
__pyx_v_u = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_u.memview)) __PYX_ERR(0, 4915, __pyx_L3_error)
__pyx_v_RZ = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_RZ.memview)) __PYX_ERR(0, 4915, __pyx_L3_error)
__pyx_v_kOut = __Pyx_PyObject_to_MemoryviewSlice_dc_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_kOut.memview)) __PYX_ERR(0, 4915, __pyx_L3_error)
__pyx_v_Mode = ((PyObject*)values[4]);
__pyx_v_VType = ((PyObject*)values[5]);
if (values[6]) {
__pyx_v_try_new_algo = __Pyx_PyObject_IsTrue(values[6]); if (unlikely((__pyx_v_try_new_algo == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4916, __pyx_L3_error)
} else {
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_60LOS_sino(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_D, __Pyx_memviewslice __pyx_v_u, __Pyx_memviewslice __pyx_v_RZ, __Pyx_memviewslice __pyx_v_kOut, PyObject *__pyx_v_Mode, PyObject *__pyx_v_VType, int __pyx_v_try_new_algo) {
unsigned int __pyx_v_nL;
unsigned int __pyx_v_ii;
PyObject *__pyx_v_out = 0;
PyArrayObject *__pyx_v_PMin = 0;
PyArrayObject *__pyx_v_kPMin = 0;
PyArrayObject *__pyx_v_RMin = 0;
PyArrayObject *__pyx_v_Theta = 0;
PyArrayObject *__pyx_v_p = 0;
PyArrayObject *__pyx_v_ImpTheta = 0;
PyArrayObject *__pyx_v_phi = 0;
int __pyx_v_is_LOS_Mode;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ImpTheta;
__Pyx_Buffer __pyx_pybuffer_ImpTheta;
__Pyx_LocalBuf_ND __pyx_pybuffernd_PMin;
__Pyx_Buffer __pyx_pybuffer_PMin;
__Pyx_LocalBuf_ND __pyx_pybuffernd_RMin;
__Pyx_Buffer __pyx_pybuffer_RMin;
__Pyx_LocalBuf_ND __pyx_pybuffernd_Theta;
__Pyx_Buffer __pyx_pybuffer_Theta;
__Pyx_LocalBuf_ND __pyx_pybuffernd_kPMin;
__Pyx_Buffer __pyx_pybuffer_kPMin;
__Pyx_LocalBuf_ND __pyx_pybuffernd_p;
__Pyx_Buffer __pyx_pybuffer_p;
__Pyx_LocalBuf_ND __pyx_pybuffernd_phi;
__Pyx_Buffer __pyx_pybuffer_phi;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("LOS_sino", 0);
__pyx_pybuffer_PMin.pybuffer.buf = NULL;
__pyx_pybuffer_PMin.refcount = 0;
__pyx_pybuffernd_PMin.data = NULL;
__pyx_pybuffernd_PMin.rcbuffer = &__pyx_pybuffer_PMin;
__pyx_pybuffer_kPMin.pybuffer.buf = NULL;
__pyx_pybuffer_kPMin.refcount = 0;
__pyx_pybuffernd_kPMin.data = NULL;
__pyx_pybuffernd_kPMin.rcbuffer = &__pyx_pybuffer_kPMin;
__pyx_pybuffer_RMin.pybuffer.buf = NULL;
__pyx_pybuffer_RMin.refcount = 0;
__pyx_pybuffernd_RMin.data = NULL;
__pyx_pybuffernd_RMin.rcbuffer = &__pyx_pybuffer_RMin;
__pyx_pybuffer_Theta.pybuffer.buf = NULL;
__pyx_pybuffer_Theta.refcount = 0;
__pyx_pybuffernd_Theta.data = NULL;
__pyx_pybuffernd_Theta.rcbuffer = &__pyx_pybuffer_Theta;
__pyx_pybuffer_p.pybuffer.buf = NULL;
__pyx_pybuffer_p.refcount = 0;
__pyx_pybuffernd_p.data = NULL;
__pyx_pybuffernd_p.rcbuffer = &__pyx_pybuffer_p;
__pyx_pybuffer_ImpTheta.pybuffer.buf = NULL;
__pyx_pybuffer_ImpTheta.refcount = 0;
__pyx_pybuffernd_ImpTheta.data = NULL;
__pyx_pybuffernd_ImpTheta.rcbuffer = &__pyx_pybuffer_ImpTheta;
__pyx_pybuffer_phi.pybuffer.buf = NULL;
__pyx_pybuffer_phi.refcount = 0;
__pyx_pybuffernd_phi.data = NULL;
__pyx_pybuffernd_phi.rcbuffer = &__pyx_pybuffer_phi;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_29);
__Pyx_XDECREF(__pyx_t_30);
__Pyx_XDECREF(__pyx_t_31);
__Pyx_XDECREF(__pyx_t_38);
__Pyx_XDECREF(__pyx_t_39);
__Pyx_XDECREF(__pyx_t_40);
__Pyx_XDECREF(__pyx_t_41);
__PYX_XDEC_MEMVIEW(&__pyx_t_60, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_61, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_62, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_63, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_64, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_65, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_66, 1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PMin.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_RMin.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Theta.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kPMin.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_p.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_phi.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.LOS_sino", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_PMin.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_RMin.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_Theta.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_kPMin.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_p.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_phi.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_out);
__Pyx_XDECREF((PyObject *)__pyx_v_PMin);
__Pyx_XDECREF((PyObject *)__pyx_v_kPMin);
__Pyx_XDECREF((PyObject *)__pyx_v_RMin);
__Pyx_XDECREF((PyObject *)__pyx_v_Theta);
__Pyx_XDECREF((PyObject *)__pyx_v_p);
__Pyx_XDECREF((PyObject *)__pyx_v_ImpTheta);
__Pyx_XDECREF((PyObject *)__pyx_v_phi);
__PYX_XDEC_MEMVIEW(&__pyx_v_D, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_u, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_RZ, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_kOut, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__218 = PyTuple_Pack(19, __pyx_n_s_D, __pyx_n_s_u, __pyx_n_s_RZ, __pyx_n_s_kOut, __pyx_n_s_Mode, __pyx_n_s_VType, __pyx_n_s_try_new_algo, __pyx_n_s_nL, __pyx_n_s_ii, __pyx_n_s_out, __pyx_n_s_PMin, __pyx_n_s_kPMin, __pyx_n_s_RMin, __pyx_n_s_Theta, __pyx_n_s_p, __pyx_n_s_ImpTheta, __pyx_n_s_phi, __pyx_n_s_results, __pyx_n_s_is_LOS_Mode); if (unlikely(!__pyx_tuple__218)) __PYX_ERR(0, 4915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__218);
__Pyx_GIVEREF(__pyx_tuple__218);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_61LOS_sino, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4915, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOS_sino, __pyx_t_2) < 0) __PYX_ERR(0, 4915, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__219 = (PyObject*)__Pyx_PyCode_New(7, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__218, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_LOS_sino, 4915, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__219)) __PYX_ERR(0, 4915, __pyx_L1_error)
+4916: str Mode='LOS', str VType='Tor', bint try_new_algo=True):
__pyx_v_try_new_algo = ((int)1);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("LOS_sino", 0, 4, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4915, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.LOS_sino", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_Mode), (&PyString_Type), 1, "Mode", 1))) __PYX_ERR(0, 4916, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_VType), (&PyString_Type), 1, "VType", 1))) __PYX_ERR(0, 4916, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_60LOS_sino(__pyx_self, __pyx_v_D, __pyx_v_u, __pyx_v_RZ, __pyx_v_kOut, __pyx_v_Mode, __pyx_v_VType, __pyx_v_try_new_algo);
+4917: cdef unsigned int nL = D.shape[1], ii
__pyx_v_nL = (__pyx_v_D.shape[1]);
4918: cdef tuple out
+4919: cdef np.ndarray[double,ndim=2] PMin = np.empty((3,nL))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4919, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4919, __pyx_L1_error) __pyx_t_5 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_PMin.rcbuffer->pybuffer, (PyObject*)__pyx_t_5, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_PMin = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4919, __pyx_L1_error) } else {__pyx_pybuffernd_PMin.diminfo[0].strides = __pyx_pybuffernd_PMin.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_PMin.diminfo[0].shape = __pyx_pybuffernd_PMin.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_PMin.diminfo[1].strides = __pyx_pybuffernd_PMin.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_PMin.diminfo[1].shape = __pyx_pybuffernd_PMin.rcbuffer->pybuffer.shape[1]; } } __pyx_t_5 = 0; __pyx_v_PMin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+4920: cdef np.ndarray[double,ndim=1] kPMin=np.empty((nL,)), RMin=np.empty((nL,))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4920, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_kPMin.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_kPMin = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_kPMin.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4920, __pyx_L1_error) } else {__pyx_pybuffernd_kPMin.diminfo[0].strides = __pyx_pybuffernd_kPMin.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_kPMin.diminfo[0].shape = __pyx_pybuffernd_kPMin.rcbuffer->pybuffer.shape[0]; } } __pyx_t_6 = 0; __pyx_v_kPMin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4920, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4920, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_RMin.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_RMin = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_RMin.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4920, __pyx_L1_error) } else {__pyx_pybuffernd_RMin.diminfo[0].strides = __pyx_pybuffernd_RMin.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_RMin.diminfo[0].shape = __pyx_pybuffernd_RMin.rcbuffer->pybuffer.shape[0]; } } __pyx_t_6 = 0; __pyx_v_RMin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+4921: cdef np.ndarray[double,ndim=1] Theta=np.empty((nL,)), p=np.empty((nL,))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4921, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_Theta.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_Theta = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_Theta.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4921, __pyx_L1_error) } else {__pyx_pybuffernd_Theta.diminfo[0].strides = __pyx_pybuffernd_Theta.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_Theta.diminfo[0].shape = __pyx_pybuffernd_Theta.rcbuffer->pybuffer.shape[0]; } } __pyx_t_7 = 0; __pyx_v_Theta = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4921, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_p.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_p = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_p.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4921, __pyx_L1_error) } else {__pyx_pybuffernd_p.diminfo[0].strides = __pyx_pybuffernd_p.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_p.diminfo[0].shape = __pyx_pybuffernd_p.rcbuffer->pybuffer.shape[0]; } } __pyx_t_7 = 0; __pyx_v_p = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
+4922: cdef np.ndarray[double,ndim=1] ImpTheta=np.empty((nL,)), phi=np.empty((nL,))
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4922, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_ImpTheta = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4922, __pyx_L1_error) } else {__pyx_pybuffernd_ImpTheta.diminfo[0].strides = __pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ImpTheta.diminfo[0].shape = __pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer.shape[0]; } } __pyx_t_8 = 0; __pyx_v_ImpTheta = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_nL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4922, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4922, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_phi.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) { __pyx_v_phi = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_phi.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4922, __pyx_L1_error) } else {__pyx_pybuffernd_phi.diminfo[0].strides = __pyx_pybuffernd_phi.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_phi.diminfo[0].shape = __pyx_pybuffernd_phi.rcbuffer->pybuffer.shape[0]; } } __pyx_t_8 = 0; __pyx_v_phi = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0;
4923: cdef double[9] results
4924: cdef bint is_LOS_Mode
+4925: if VType.lower()=='tor':
__pyx_t_1 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_VType); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_9 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4925, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_9) { /* … */ goto __pyx_L3; }
+4926: if not try_new_algo:
__pyx_t_9 = ((!(__pyx_v_try_new_algo != 0)) != 0);
if (__pyx_t_9) {
/* … */
goto __pyx_L4;
}
+4927: for ii in range(0,nL):
__pyx_t_10 = __pyx_v_nL;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4928: out = LOS_sino_Tor(D[0,ii],D[1,ii],D[2,ii],
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_ii;
__pyx_t_15 = 1;
__pyx_t_16 = __pyx_v_ii;
__pyx_t_17 = 2;
__pyx_t_18 = __pyx_v_ii;
/* … */
__pyx_t_28.__pyx_n = 2;
__pyx_t_28.Mode = __pyx_v_Mode;
__pyx_t_28.kOut = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kOut.data) + __pyx_t_27)) )));
__pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03_LOS_sino_Tor((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_D.data + __pyx_t_13 * __pyx_v_D.strides[0]) )) + __pyx_t_14)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_D.data + __pyx_t_15 * __pyx_v_D.strides[0]) )) + __pyx_t_16)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_D.data + __pyx_t_17 * __pyx_v_D.strides[0]) )) + __pyx_t_18)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_19 * __pyx_v_u.strides[0]) )) + __pyx_t_20)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_21 * __pyx_v_u.strides[0]) )) + __pyx_t_22)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_23 * __pyx_v_u.strides[0]) )) + __pyx_t_24)) ))), (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_RZ.data) + __pyx_t_25)) ))), (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_RZ.data) + __pyx_t_26)) ))), &__pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4928, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (!(likely(PyTuple_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(0, 4928, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_out, ((PyObject*)__pyx_t_1));
__pyx_t_1 = 0;
+4929: u[0,ii],u[1,ii],u[2,ii],
__pyx_t_19 = 0;
__pyx_t_20 = __pyx_v_ii;
__pyx_t_21 = 1;
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = 2;
__pyx_t_24 = __pyx_v_ii;
+4930: RZ[0],RZ[1], Mode=Mode, kOut=kOut[ii])
__pyx_t_25 = 0;
__pyx_t_26 = 1;
__pyx_t_27 = __pyx_v_ii;
+4931: ((PMin[0,ii],PMin[1,ii],PMin[2,ii]),
__pyx_t_32 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_32 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_33 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_34 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_34 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_35 = __pyx_PyFloat_AsDouble(__pyx_t_29); if (unlikely((__pyx_t_35 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __pyx_t_36 = __pyx_PyFloat_AsDouble(__pyx_t_30); if (unlikely((__pyx_t_36 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __pyx_t_37 = __pyx_PyFloat_AsDouble(__pyx_t_31); if (unlikely((__pyx_t_37 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4931, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_38 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_39 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_40 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_38 = PyList_GET_ITEM(sequence, 0); __pyx_t_39 = PyList_GET_ITEM(sequence, 1); __pyx_t_40 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_38); __Pyx_INCREF(__pyx_t_39); __Pyx_INCREF(__pyx_t_40); #else __pyx_t_38 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_38); __pyx_t_39 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_39); __pyx_t_40 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_40); #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; __pyx_t_41 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_42 = Py_TYPE(__pyx_t_41)->tp_iternext; index = 0; __pyx_t_38 = __pyx_t_42(__pyx_t_41); if (unlikely(!__pyx_t_38)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_38); index = 1; __pyx_t_39 = __pyx_t_42(__pyx_t_41); if (unlikely(!__pyx_t_39)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_39); index = 2; __pyx_t_40 = __pyx_t_42(__pyx_t_41); if (unlikely(!__pyx_t_40)) goto __pyx_L7_unpacking_failed; __Pyx_GOTREF(__pyx_t_40); if (__Pyx_IternextUnpackEndCheck(__pyx_t_42(__pyx_t_41), 3) < 0) __PYX_ERR(0, 4931, __pyx_L1_error) __pyx_t_42 = NULL; __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; goto __pyx_L8_unpacking_done; __pyx_L7_unpacking_failed:; __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_42 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4931, __pyx_L1_error) __pyx_L8_unpacking_done:; } __pyx_t_43 = __pyx_PyFloat_AsDouble(__pyx_t_38); if (unlikely((__pyx_t_43 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_38); __pyx_t_38 = 0; __pyx_t_44 = __pyx_PyFloat_AsDouble(__pyx_t_39); if (unlikely((__pyx_t_44 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __pyx_t_45 = __pyx_PyFloat_AsDouble(__pyx_t_40); if (unlikely((__pyx_t_45 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4931, __pyx_L1_error) __Pyx_DECREF(__pyx_t_40); __pyx_t_40 = 0; __pyx_t_46 = 0; __pyx_t_47 = __pyx_v_ii; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf, __pyx_t_46, __pyx_pybuffernd_PMin.diminfo[0].strides, __pyx_t_47, __pyx_pybuffernd_PMin.diminfo[1].strides) = __pyx_t_43; __pyx_t_48 = 1; __pyx_t_49 = __pyx_v_ii; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf, __pyx_t_48, __pyx_pybuffernd_PMin.diminfo[0].strides, __pyx_t_49, __pyx_pybuffernd_PMin.diminfo[1].strides) = __pyx_t_44; __pyx_t_50 = 2; __pyx_t_51 = __pyx_v_ii; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf, __pyx_t_50, __pyx_pybuffernd_PMin.diminfo[0].strides, __pyx_t_51, __pyx_pybuffernd_PMin.diminfo[1].strides) = __pyx_t_45;
+4932: kPMin[ii], RMin[ii], Theta[ii],
__pyx_t_52 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kPMin.rcbuffer->pybuffer.buf, __pyx_t_52, __pyx_pybuffernd_kPMin.diminfo[0].strides) = __pyx_t_32;
__pyx_t_53 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_RMin.rcbuffer->pybuffer.buf, __pyx_t_53, __pyx_pybuffernd_RMin.diminfo[0].strides) = __pyx_t_33;
__pyx_t_54 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_Theta.rcbuffer->pybuffer.buf, __pyx_t_54, __pyx_pybuffernd_Theta.diminfo[0].strides) = __pyx_t_34;
+4933: p[ii], ImpTheta[ii], phi[ii]) = out
if (likely(__pyx_v_out != Py_None)) {
PyObject* sequence = __pyx_v_out;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 7)) {
if (size > 7) __Pyx_RaiseTooManyValuesError(7);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 4931, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_4 = PyTuple_GET_ITEM(sequence, 2);
__pyx_t_2 = PyTuple_GET_ITEM(sequence, 3);
__pyx_t_29 = PyTuple_GET_ITEM(sequence, 4);
__pyx_t_30 = PyTuple_GET_ITEM(sequence, 5);
__pyx_t_31 = PyTuple_GET_ITEM(sequence, 6);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx_t_29);
__Pyx_INCREF(__pyx_t_30);
__Pyx_INCREF(__pyx_t_31);
#else
{
Py_ssize_t i;
PyObject** temps[7] = {&__pyx_t_1,&__pyx_t_3,&__pyx_t_4,&__pyx_t_2,&__pyx_t_29,&__pyx_t_30,&__pyx_t_31};
for (i=0; i < 7; i++) {
PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 4931, __pyx_L1_error)
__Pyx_GOTREF(item);
*(temps[i]) = item;
}
}
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 4931, __pyx_L1_error)
}
/* … */
__pyx_t_55 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_p.rcbuffer->pybuffer.buf, __pyx_t_55, __pyx_pybuffernd_p.diminfo[0].strides) = __pyx_t_35;
__pyx_t_56 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer.buf, __pyx_t_56, __pyx_pybuffernd_ImpTheta.diminfo[0].strides) = __pyx_t_36;
__pyx_t_57 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_phi.rcbuffer->pybuffer.buf, __pyx_t_57, __pyx_pybuffernd_phi.diminfo[0].strides) = __pyx_t_37;
}
4934: else:
+4935: is_LOS_Mode = Mode.lower() == 'los'
/*else*/ {
__pyx_t_31 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_Mode); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 4935, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_31);
__pyx_t_30 = PyObject_RichCompare(__pyx_t_31, __pyx_n_s_los, Py_EQ); __Pyx_XGOTREF(__pyx_t_30); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4935, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_30); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4935, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
__pyx_v_is_LOS_Mode = __pyx_t_9;
+4936: NEW_los_sino_tor_vec(nL, D, u, RZ[0], RZ[1],
__pyx_t_58 = 0;
__pyx_t_59 = 1;
/* … */
__pyx_t_67.__pyx_n = 2;
__pyx_t_67.is_LOS_Mode = __pyx_v_is_LOS_Mode;
__pyx_t_67.kOut = __pyx_v_kOut;
__pyx_f_4tofu_4geom_5_GG03_NEW_los_sino_tor_vec(__pyx_v_nL, __pyx_v_D, __pyx_v_u, (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_RZ.data) + __pyx_t_58)) ))), (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_RZ.data) + __pyx_t_59)) ))), __pyx_t_60, __pyx_t_61, __pyx_t_62, __pyx_t_63, __pyx_t_64, __pyx_t_65, __pyx_t_66, &__pyx_t_67);
__PYX_XDEC_MEMVIEW(&__pyx_t_60, 1);
__pyx_t_60.memview = NULL;
__pyx_t_60.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_61, 1);
__pyx_t_61.memview = NULL;
__pyx_t_61.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_62, 1);
__pyx_t_62.memview = NULL;
__pyx_t_62.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_63, 1);
__pyx_t_63.memview = NULL;
__pyx_t_63.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_64, 1);
__pyx_t_64.memview = NULL;
__pyx_t_64.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_65, 1);
__pyx_t_65.memview = NULL;
__pyx_t_65.data = NULL;
__PYX_XDEC_MEMVIEW(&__pyx_t_66, 1);
__pyx_t_66.memview = NULL;
__pyx_t_66.data = NULL;
}
__pyx_L4:;
+4937: PMin, kPMin, RMin, Theta, p,
__pyx_t_60 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_PMin), PyBUF_WRITABLE); if (unlikely(!__pyx_t_60.memview)) __PYX_ERR(0, 4937, __pyx_L1_error) __pyx_t_61 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_kPMin), PyBUF_WRITABLE); if (unlikely(!__pyx_t_61.memview)) __PYX_ERR(0, 4937, __pyx_L1_error) __pyx_t_62 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_RMin), PyBUF_WRITABLE); if (unlikely(!__pyx_t_62.memview)) __PYX_ERR(0, 4937, __pyx_L1_error) __pyx_t_63 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_Theta), PyBUF_WRITABLE); if (unlikely(!__pyx_t_63.memview)) __PYX_ERR(0, 4937, __pyx_L1_error) __pyx_t_64 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_p), PyBUF_WRITABLE); if (unlikely(!__pyx_t_64.memview)) __PYX_ERR(0, 4937, __pyx_L1_error)
+4938: ImpTheta, phi,
__pyx_t_65 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_ImpTheta), PyBUF_WRITABLE); if (unlikely(!__pyx_t_65.memview)) __PYX_ERR(0, 4938, __pyx_L1_error) __pyx_t_66 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_phi), PyBUF_WRITABLE); if (unlikely(!__pyx_t_66.memview)) __PYX_ERR(0, 4938, __pyx_L1_error)
4939: is_LOS_Mode=is_LOS_Mode,
4940: kOut=kOut)
4941: else:
+4942: for ii in range(0,nL):
/*else*/ {
__pyx_t_10 = __pyx_v_nL;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ii = __pyx_t_12;
+4943: out = LOS_sino_Lin(D[0,ii],D[1,ii],D[2,ii],u[0,ii],u[1,ii],u[2,ii],
__pyx_t_68 = 0;
__pyx_t_69 = __pyx_v_ii;
__pyx_t_70 = 1;
__pyx_t_71 = __pyx_v_ii;
__pyx_t_72 = 2;
__pyx_t_73 = __pyx_v_ii;
__pyx_t_74 = 0;
__pyx_t_75 = __pyx_v_ii;
__pyx_t_76 = 1;
__pyx_t_77 = __pyx_v_ii;
__pyx_t_78 = 2;
__pyx_t_79 = __pyx_v_ii;
/* … */
__pyx_t_83.__pyx_n = 2;
__pyx_t_83.Mode = __pyx_v_Mode;
__pyx_t_83.kOut = (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kOut.data) + __pyx_t_82)) )));
__pyx_t_30 = __pyx_f_4tofu_4geom_5_GG03_LOS_sino_Lin((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_D.data + __pyx_t_68 * __pyx_v_D.strides[0]) )) + __pyx_t_69)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_D.data + __pyx_t_70 * __pyx_v_D.strides[0]) )) + __pyx_t_71)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_D.data + __pyx_t_72 * __pyx_v_D.strides[0]) )) + __pyx_t_73)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_74 * __pyx_v_u.strides[0]) )) + __pyx_t_75)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_76 * __pyx_v_u.strides[0]) )) + __pyx_t_77)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_u.data + __pyx_t_78 * __pyx_v_u.strides[0]) )) + __pyx_t_79)) ))), (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_RZ.data) + __pyx_t_80)) ))), (*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_RZ.data) + __pyx_t_81)) ))), &__pyx_t_83); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 4943, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_30);
if (!(likely(PyTuple_CheckExact(__pyx_t_30))||((__pyx_t_30) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_30)->tp_name), 0))) __PYX_ERR(0, 4943, __pyx_L1_error)
__Pyx_XDECREF_SET(__pyx_v_out, ((PyObject*)__pyx_t_30));
__pyx_t_30 = 0;
+4944: RZ[0],RZ[1], Mode=Mode, kOut=kOut[ii])
__pyx_t_80 = 0;
__pyx_t_81 = 1;
__pyx_t_82 = __pyx_v_ii;
+4945: ((PMin[0,ii],PMin[1,ii],PMin[2,ii]),
__pyx_t_37 = __pyx_PyFloat_AsDouble(__pyx_t_31); if (unlikely((__pyx_t_37 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __pyx_t_36 = __pyx_PyFloat_AsDouble(__pyx_t_29); if (unlikely((__pyx_t_36 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0; __pyx_t_35 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_35 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_34 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_34 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_33 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_33 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_32 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_32 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_30))) || (PyList_CheckExact(__pyx_t_30))) { PyObject* sequence = __pyx_t_30; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 3)) { if (size > 3) __Pyx_RaiseTooManyValuesError(3); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 4945, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_40 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_39 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_38 = PyTuple_GET_ITEM(sequence, 2); } else { __pyx_t_40 = PyList_GET_ITEM(sequence, 0); __pyx_t_39 = PyList_GET_ITEM(sequence, 1); __pyx_t_38 = PyList_GET_ITEM(sequence, 2); } __Pyx_INCREF(__pyx_t_40); __Pyx_INCREF(__pyx_t_39); __Pyx_INCREF(__pyx_t_38); #else __pyx_t_40 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_40); __pyx_t_39 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_39); __pyx_t_38 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_38); #endif __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; } else { Py_ssize_t index = -1; __pyx_t_41 = PyObject_GetIter(__pyx_t_30); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_41); __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0; __pyx_t_42 = Py_TYPE(__pyx_t_41)->tp_iternext; index = 0; __pyx_t_40 = __pyx_t_42(__pyx_t_41); if (unlikely(!__pyx_t_40)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_40); index = 1; __pyx_t_39 = __pyx_t_42(__pyx_t_41); if (unlikely(!__pyx_t_39)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_39); index = 2; __pyx_t_38 = __pyx_t_42(__pyx_t_41); if (unlikely(!__pyx_t_38)) goto __pyx_L11_unpacking_failed; __Pyx_GOTREF(__pyx_t_38); if (__Pyx_IternextUnpackEndCheck(__pyx_t_42(__pyx_t_41), 3) < 0) __PYX_ERR(0, 4945, __pyx_L1_error) __pyx_t_42 = NULL; __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; goto __pyx_L12_unpacking_done; __pyx_L11_unpacking_failed:; __Pyx_DECREF(__pyx_t_41); __pyx_t_41 = 0; __pyx_t_42 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 4945, __pyx_L1_error) __pyx_L12_unpacking_done:; } __pyx_t_45 = __pyx_PyFloat_AsDouble(__pyx_t_40); if (unlikely((__pyx_t_45 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_40); __pyx_t_40 = 0; __pyx_t_44 = __pyx_PyFloat_AsDouble(__pyx_t_39); if (unlikely((__pyx_t_44 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_39); __pyx_t_39 = 0; __pyx_t_43 = __pyx_PyFloat_AsDouble(__pyx_t_38); if (unlikely((__pyx_t_43 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4945, __pyx_L1_error) __Pyx_DECREF(__pyx_t_38); __pyx_t_38 = 0; __pyx_t_84 = 0; __pyx_t_85 = __pyx_v_ii; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf, __pyx_t_84, __pyx_pybuffernd_PMin.diminfo[0].strides, __pyx_t_85, __pyx_pybuffernd_PMin.diminfo[1].strides) = __pyx_t_45; __pyx_t_86 = 1; __pyx_t_87 = __pyx_v_ii; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf, __pyx_t_86, __pyx_pybuffernd_PMin.diminfo[0].strides, __pyx_t_87, __pyx_pybuffernd_PMin.diminfo[1].strides) = __pyx_t_44; __pyx_t_88 = 2; __pyx_t_89 = __pyx_v_ii; *__Pyx_BufPtrStrided2d(double *, __pyx_pybuffernd_PMin.rcbuffer->pybuffer.buf, __pyx_t_88, __pyx_pybuffernd_PMin.diminfo[0].strides, __pyx_t_89, __pyx_pybuffernd_PMin.diminfo[1].strides) = __pyx_t_43;
+4946: kPMin[ii], RMin[ii], Theta[ii], p[ii], ImpTheta[ii], phi[ii]) = out
if (likely(__pyx_v_out != Py_None)) {
PyObject* sequence = __pyx_v_out;
Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
if (unlikely(size != 7)) {
if (size > 7) __Pyx_RaiseTooManyValuesError(7);
else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
__PYX_ERR(0, 4945, __pyx_L1_error)
}
#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
__pyx_t_30 = PyTuple_GET_ITEM(sequence, 0);
__pyx_t_31 = PyTuple_GET_ITEM(sequence, 1);
__pyx_t_29 = PyTuple_GET_ITEM(sequence, 2);
__pyx_t_2 = PyTuple_GET_ITEM(sequence, 3);
__pyx_t_4 = PyTuple_GET_ITEM(sequence, 4);
__pyx_t_3 = PyTuple_GET_ITEM(sequence, 5);
__pyx_t_1 = PyTuple_GET_ITEM(sequence, 6);
__Pyx_INCREF(__pyx_t_30);
__Pyx_INCREF(__pyx_t_31);
__Pyx_INCREF(__pyx_t_29);
__Pyx_INCREF(__pyx_t_2);
__Pyx_INCREF(__pyx_t_4);
__Pyx_INCREF(__pyx_t_3);
__Pyx_INCREF(__pyx_t_1);
#else
{
Py_ssize_t i;
PyObject** temps[7] = {&__pyx_t_30,&__pyx_t_31,&__pyx_t_29,&__pyx_t_2,&__pyx_t_4,&__pyx_t_3,&__pyx_t_1};
for (i=0; i < 7; i++) {
PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 4945, __pyx_L1_error)
__Pyx_GOTREF(item);
*(temps[i]) = item;
}
}
#endif
} else {
__Pyx_RaiseNoneNotIterableError(); __PYX_ERR(0, 4945, __pyx_L1_error)
}
/* … */
__pyx_t_90 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_kPMin.rcbuffer->pybuffer.buf, __pyx_t_90, __pyx_pybuffernd_kPMin.diminfo[0].strides) = __pyx_t_37;
__pyx_t_91 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_RMin.rcbuffer->pybuffer.buf, __pyx_t_91, __pyx_pybuffernd_RMin.diminfo[0].strides) = __pyx_t_36;
__pyx_t_92 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_Theta.rcbuffer->pybuffer.buf, __pyx_t_92, __pyx_pybuffernd_Theta.diminfo[0].strides) = __pyx_t_35;
__pyx_t_93 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_p.rcbuffer->pybuffer.buf, __pyx_t_93, __pyx_pybuffernd_p.diminfo[0].strides) = __pyx_t_34;
__pyx_t_94 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_ImpTheta.rcbuffer->pybuffer.buf, __pyx_t_94, __pyx_pybuffernd_ImpTheta.diminfo[0].strides) = __pyx_t_33;
__pyx_t_95 = __pyx_v_ii;
*__Pyx_BufPtrStrided1d(double *, __pyx_pybuffernd_phi.rcbuffer->pybuffer.buf, __pyx_t_95, __pyx_pybuffernd_phi.diminfo[0].strides) = __pyx_t_32;
}
}
__pyx_L3:;
+4947: return PMin, kPMin, RMin, Theta, p, ImpTheta, phi
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)__pyx_v_PMin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_PMin)); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_PMin)); __Pyx_INCREF(((PyObject *)__pyx_v_kPMin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_kPMin)); PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_kPMin)); __Pyx_INCREF(((PyObject *)__pyx_v_RMin)); __Pyx_GIVEREF(((PyObject *)__pyx_v_RMin)); PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_RMin)); __Pyx_INCREF(((PyObject *)__pyx_v_Theta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_Theta)); PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_Theta)); __Pyx_INCREF(((PyObject *)__pyx_v_p)); __Pyx_GIVEREF(((PyObject *)__pyx_v_p)); PyTuple_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_v_p)); __Pyx_INCREF(((PyObject *)__pyx_v_ImpTheta)); __Pyx_GIVEREF(((PyObject *)__pyx_v_ImpTheta)); PyTuple_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_ImpTheta)); __Pyx_INCREF(((PyObject *)__pyx_v_phi)); __Pyx_GIVEREF(((PyObject *)__pyx_v_phi)); PyTuple_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_phi)); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
4948:
4949:
4950:
4951:
4952:
4953:
4954:
4955: """
4956: ########################################################
4957: ########################################################
4958: ########################################################
4959: # Solid Angle
4960: ########################################################
4961: ########################################################
4962: ########################################################
4963: """
4964:
4965:
4966: ######################################################
4967: ######################################################
4968: # Dust
4969: ######################################################
4970: ######################################################
4971:
4972:
+4973: def Dust_calc_SolidAngle(pos, r, pts,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_63Dust_calc_SolidAngle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_62Dust_calc_SolidAngle[] = " Compute the solid angle of a moving particle of varying radius as seen\n from any number of pixed points\n\n Can be done w/o the approximation that r<<d\n If Ves (and optionally LSPoly) are provided, takes into account vignetting\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_63Dust_calc_SolidAngle = {"Dust_calc_SolidAngle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_63Dust_calc_SolidAngle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_62Dust_calc_SolidAngle};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_63Dust_calc_SolidAngle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_pos = 0;
PyObject *__pyx_v_r = 0;
PyObject *__pyx_v_pts = 0;
PyObject *__pyx_v_approx = 0;
PyObject *__pyx_v_out_coefonly = 0;
PyObject *__pyx_v_VType = 0;
PyObject *__pyx_v_VPoly = 0;
PyObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_VLim = 0;
PyObject *__pyx_v_LSPoly = 0;
PyObject *__pyx_v_LSLim = 0;
PyObject *__pyx_v_LSVIn = 0;
PyObject *__pyx_v_Forbid = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Dust_calc_SolidAngle (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pos,&__pyx_n_s_r,&__pyx_n_s_pts,&__pyx_n_s_approx,&__pyx_n_s_out_coefonly,&__pyx_n_s_VType,&__pyx_n_s_VPoly,&__pyx_n_s_VIn,&__pyx_n_s_VLim,&__pyx_n_s_LSPoly,&__pyx_n_s_LSLim,&__pyx_n_s_LSVIn,&__pyx_n_s_Forbid,&__pyx_n_s_Test,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_62Dust_calc_SolidAngle(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_pos, PyObject *__pyx_v_r, PyObject *__pyx_v_pts, PyObject *__pyx_v_approx, PyObject *__pyx_v_out_coefonly, PyObject *__pyx_v_VType, PyObject *__pyx_v_VPoly, PyObject *__pyx_v_VIn, PyObject *__pyx_v_VLim, PyObject *__pyx_v_LSPoly, PyObject *__pyx_v_LSLim, PyObject *__pyx_v_LSVIn, PyObject *__pyx_v_Forbid, PyObject *__pyx_v_Test) {
PyObject *__pyx_v_block = 0;
float __pyx_v_pir2;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_nptsok;
int __pyx_v_nt;
int __pyx_v_npts;
PyArrayObject *__pyx_v_sang = 0;
PyObject *__pyx_v_ind = NULL;
PyObject *__pyx_v_ptstemp = NULL;
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_v_vis = NULL;
PyObject *__pyx_v_dij2 = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_sang;
__Pyx_Buffer __pyx_pybuffer_sang;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Dust_calc_SolidAngle", 0);
__pyx_pybuffer_sang.pybuffer.buf = NULL;
__pyx_pybuffer_sang.refcount = 0;
__pyx_pybuffernd_sang.data = NULL;
__pyx_pybuffernd_sang.rcbuffer = &__pyx_pybuffer_sang;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_14);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sang.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Dust_calc_SolidAngle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_sang.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_block);
__Pyx_XDECREF((PyObject *)__pyx_v_sang);
__Pyx_XDECREF(__pyx_v_ind);
__Pyx_XDECREF(__pyx_v_ptstemp);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_vis);
__Pyx_XDECREF(__pyx_v_dij2);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__220 = PyTuple_Pack(27, __pyx_n_s_pos, __pyx_n_s_r, __pyx_n_s_pts, __pyx_n_s_approx, __pyx_n_s_out_coefonly, __pyx_n_s_VType, __pyx_n_s_VPoly, __pyx_n_s_VIn, __pyx_n_s_VLim, __pyx_n_s_LSPoly, __pyx_n_s_LSLim, __pyx_n_s_LSVIn, __pyx_n_s_Forbid, __pyx_n_s_Test, __pyx_n_s_block, __pyx_n_s_pir2, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_nptsok, __pyx_n_s_nt, __pyx_n_s_npts, __pyx_n_s_sang, __pyx_n_s_ind, __pyx_n_s_ptstemp, __pyx_n_s_k, __pyx_n_s_vis, __pyx_n_s_dij2); if (unlikely(!__pyx_tuple__220)) __PYX_ERR(0, 4973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__220);
__Pyx_GIVEREF(__pyx_tuple__220);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_63Dust_calc_SolidAngle, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4973, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_Dust_calc_SolidAngle, __pyx_t_2) < 0) __PYX_ERR(0, 4973, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(14, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__220, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_Dust_calc_SolidAngle, 4973, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(0, 4973, __pyx_L1_error)
+4974: approx=True, out_coefonly=False,
values[3] = ((PyObject *)Py_True);
values[4] = ((PyObject *)Py_False);
values[5] = ((PyObject *)__pyx_n_s_Tor);
+4975: VType='Tor', VPoly=None, VIn=None, VLim=None,
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)Py_None);
+4976: LSPoly=None, LSLim=None, LSVIn=None, Forbid=True,
values[9] = ((PyObject *)Py_None);
values[10] = ((PyObject *)Py_None);
values[11] = ((PyObject *)Py_None);
values[12] = ((PyObject *)Py_True);
+4977: Test=True):
values[13] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pos)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("Dust_calc_SolidAngle", 0, 3, 14, 1); __PYX_ERR(0, 4973, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pts)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("Dust_calc_SolidAngle", 0, 3, 14, 2); __PYX_ERR(0, 4973, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_approx);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out_coefonly);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VType);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VLim);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSPoly);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSLim);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSVIn);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Forbid);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Dust_calc_SolidAngle") < 0)) __PYX_ERR(0, 4973, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_pos = values[0];
__pyx_v_r = values[1];
__pyx_v_pts = values[2];
__pyx_v_approx = values[3];
__pyx_v_out_coefonly = values[4];
__pyx_v_VType = values[5];
__pyx_v_VPoly = values[6];
__pyx_v_VIn = values[7];
__pyx_v_VLim = values[8];
__pyx_v_LSPoly = values[9];
__pyx_v_LSLim = values[10];
__pyx_v_LSVIn = values[11];
__pyx_v_Forbid = values[12];
__pyx_v_Test = values[13];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("Dust_calc_SolidAngle", 0, 3, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4973, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.Dust_calc_SolidAngle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_62Dust_calc_SolidAngle(__pyx_self, __pyx_v_pos, __pyx_v_r, __pyx_v_pts, __pyx_v_approx, __pyx_v_out_coefonly, __pyx_v_VType, __pyx_v_VPoly, __pyx_v_VIn, __pyx_v_VLim, __pyx_v_LSPoly, __pyx_v_LSLim, __pyx_v_LSVIn, __pyx_v_Forbid, __pyx_v_Test);
4978: """ Compute the solid angle of a moving particle of varying radius as seen
4979: from any number of pixed points
4980:
4981: Can be done w/o the approximation that r<<d
4982: If Ves (and optionally LSPoly) are provided, takes into account vignetting
4983: """
+4984: cdef block = VPoly is not None
__pyx_t_1 = (__pyx_v_VPoly != Py_None); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4984, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_block = __pyx_t_2; __pyx_t_2 = 0;
4985: cdef float pir2
+4986: cdef int ii, jj, nptsok, nt=pos.shape[1], npts=pts.shape[1]
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_pos, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4986, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_nt = __pyx_t_4; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pts, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4986, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4986, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_npts = __pyx_t_4;
+4987: cdef np.ndarray[double, ndim=2, mode='c'] sang=np.zeros((nt,npts))
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_npts); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_3 = 0; __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 4987, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_sang.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS| PyBUF_WRITABLE, 2, 0, __pyx_stack) == -1)) { __pyx_v_sang = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_sang.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 4987, __pyx_L1_error) } else {__pyx_pybuffernd_sang.diminfo[0].strides = __pyx_pybuffernd_sang.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_sang.diminfo[0].shape = __pyx_pybuffernd_sang.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_sang.diminfo[1].strides = __pyx_pybuffernd_sang.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_sang.diminfo[1].shape = __pyx_pybuffernd_sang.rcbuffer->pybuffer.shape[1]; } } __pyx_t_8 = 0; __pyx_v_sang = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
4988:
+4989: if block:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_block); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4989, __pyx_L1_error) if (__pyx_t_1) { /* … */ goto __pyx_L3; }
+4990: ind = ~_Ves_isInside(pts, VPoly, Lim=VLim, VType=VType,
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ves_isInside); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_pts); __Pyx_GIVEREF(__pyx_v_pts); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pts); __Pyx_INCREF(__pyx_v_VPoly); __Pyx_GIVEREF(__pyx_v_VPoly); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_VPoly); __pyx_t_7 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_Lim, __pyx_v_VLim) < 0) __PYX_ERR(0, 4990, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_VType, __pyx_v_VType) < 0) __PYX_ERR(0, 4990, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_In, __pyx_kp_s_X_Y_Z) < 0) __PYX_ERR(0, 4990, __pyx_L1_error) /* … */ __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Invert(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_ind = __pyx_t_7; __pyx_t_7 = 0;
+4991: In='(X,Y,Z)', Test=Test)
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_Test, __pyx_v_Test) < 0) __PYX_ERR(0, 4990, __pyx_L1_error)
+4992: if LSPoly is not None:
__pyx_t_1 = (__pyx_v_LSPoly != Py_None);
__pyx_t_9 = (__pyx_t_1 != 0);
if (__pyx_t_9) {
/* … */
}
+4993: for ii in range(0,len(LSPoly)):
__pyx_t_10 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4993, __pyx_L1_error) __pyx_t_11 = __pyx_t_10; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_11; __pyx_t_4+=1) { __pyx_v_ii = __pyx_t_4;
+4994: ind = ind & _Ves_isInside(pts, LSPoly[ii], Lim=LSLim[ii],
__Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_Ves_isInside); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_LSPoly, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_v_pts); __Pyx_GIVEREF(__pyx_v_pts); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_pts); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_Lim, __pyx_t_2) < 0) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_And(__pyx_v_ind, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_ind, __pyx_t_6); __pyx_t_6 = 0; }
+4995: VType=VType, In='(X,Y,Z)', Test=Test)
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_VType, __pyx_v_VType) < 0) __PYX_ERR(0, 4994, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_In, __pyx_kp_s_X_Y_Z) < 0) __PYX_ERR(0, 4994, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_Test, __pyx_v_Test) < 0) __PYX_ERR(0, 4994, __pyx_L1_error)
+4996: ind = (~ind).nonzero()[0]
__pyx_t_2 = PyNumber_Invert(__pyx_v_ind); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nonzero); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_5); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4996, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_ind, __pyx_t_5); __pyx_t_5 = 0;
+4997: ptstemp = np.ascontiguousarray(pts[:,ind])
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_ind); __Pyx_GIVEREF(__pyx_v_ind); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_ind); __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4997, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ptstemp = __pyx_t_5; __pyx_t_5 = 0;
+4998: nptsok = ind.size
__pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_ind, __pyx_n_s_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4998, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_nptsok = __pyx_t_4;
4999:
+5000: if approx and out_coefonly:
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_approx); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5000, __pyx_L1_error) if (__pyx_t_1) { } else { __pyx_t_9 = __pyx_t_1; goto __pyx_L8_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_out_coefonly); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5000, __pyx_L1_error) __pyx_t_9 = __pyx_t_1; __pyx_L8_bool_binop_done:; if (__pyx_t_9) { /* … */ goto __pyx_L7; }
+5001: for ii in range(0,nt):
__pyx_t_4 = __pyx_v_nt;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+5002: k = np.sqrt((pos[0,ii]-ptstemp[0,:])**2
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__36); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5003: + (pos[1,ii]-ptstemp[1,:])**2
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__42); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = PyNumber_Subtract(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Power(__pyx_t_14, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Add(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5004: + (pos[2,ii]-ptstemp[2,:])**2)
__pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__32); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = PyNumber_Subtract(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_14, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_3); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5002, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5); __pyx_t_5 = 0;
5005:
+5006: vis = LOS_isVis_PtFromPts_VesStruct(pos[0,ii], pos[1,ii],
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LOS_isVis_PtFromPts_VesStruct); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_14 = PyTuple_New(7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_6); __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_v_k); __Pyx_INCREF(__pyx_v_ptstemp); __Pyx_GIVEREF(__pyx_v_ptstemp); PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_v_ptstemp); __Pyx_INCREF(__pyx_v_VPoly); __Pyx_GIVEREF(__pyx_v_VPoly); PyTuple_SET_ITEM(__pyx_t_14, 5, __pyx_v_VPoly); __Pyx_INCREF(__pyx_v_VIn); __Pyx_GIVEREF(__pyx_v_VIn); PyTuple_SET_ITEM(__pyx_t_14, 6, __pyx_v_VIn); __pyx_t_7 = 0; __pyx_t_3 = 0; __pyx_t_6 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_vis, __pyx_t_3); __pyx_t_3 = 0;
+5007: pos[2,ii], k, ptstemp,
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+5008: VPoly, VIn, Lim=VLim,
__pyx_t_6 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_Lim, __pyx_v_VLim) < 0) __PYX_ERR(0, 5008, __pyx_L1_error)
+5009: LSPoly=LSPoly, LSLim=LSLim,
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_LSPoly, __pyx_v_LSPoly) < 0) __PYX_ERR(0, 5008, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_LSLim, __pyx_v_LSLim) < 0) __PYX_ERR(0, 5008, __pyx_L1_error)
+5010: LSVIn=LSVIn, Forbid=Forbid,
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_LSVIn, __pyx_v_LSVIn) < 0) __PYX_ERR(0, 5008, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_Forbid, __pyx_v_Forbid) < 0) __PYX_ERR(0, 5008, __pyx_L1_error)
+5011: VType=VType, Test=Test)
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_VType, __pyx_v_VType) < 0) __PYX_ERR(0, 5008, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_Test, __pyx_v_Test) < 0) __PYX_ERR(0, 5008, __pyx_L1_error)
+5012: for jj in range(0,nptsok):
__pyx_t_15 = __pyx_v_nptsok;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_jj = __pyx_t_17;
+5013: if vis[jj]:
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_vis, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5013, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_9) { /* … */ } } }
+5014: sang[ii,ind[jj]] = Cpi/k[jj]**2
__pyx_t_3 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_k, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = PyNumber_Power(__pyx_t_6, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_ind, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_14 = 0; __pyx_t_3 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sang), __pyx_t_5, __pyx_t_6) < 0)) __PYX_ERR(0, 5014, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5015: elif approx:
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_approx); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5015, __pyx_L1_error) if (__pyx_t_9) { /* … */ goto __pyx_L7; }
+5016: for ii in range(0,nt):
__pyx_t_4 = __pyx_v_nt;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+5017: k = np.sqrt((pos[0,ii]-ptstemp[0,:])**2
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__36); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_7 = PyNumber_Subtract(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Power(__pyx_t_7, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5018: + (pos[1,ii]-ptstemp[1,:])**2
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__42); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Power(__pyx_t_2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_14, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5018, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5019: + (pos[2,ii]-ptstemp[2,:])**2)
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__32); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_7 = PyNumber_Subtract(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Power(__pyx_t_7, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Add(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_6 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_14, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_7); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6); __pyx_t_6 = 0;
5020:
+5021: vis = LOS_isVis_PtFromPts_VesStruct(pos[0,ii], pos[1,ii],
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LOS_isVis_PtFromPts_VesStruct); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; /* … */ __pyx_t_2 = PyTuple_New(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_14); __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_k); __Pyx_INCREF(__pyx_v_ptstemp); __Pyx_GIVEREF(__pyx_v_ptstemp); PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_ptstemp); __Pyx_INCREF(__pyx_v_VPoly); __Pyx_GIVEREF(__pyx_v_VPoly); PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_VPoly); __Pyx_INCREF(__pyx_v_VIn); __Pyx_GIVEREF(__pyx_v_VIn); PyTuple_SET_ITEM(__pyx_t_2, 6, __pyx_v_VIn); __pyx_t_3 = 0; __pyx_t_7 = 0; __pyx_t_14 = 0; /* … */ __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF_SET(__pyx_v_vis, __pyx_t_7); __pyx_t_7 = 0;
+5022: pos[2,ii], k, ptstemp,
__pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5022, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5023: VPoly, VIn, Lim=VLim,
__pyx_t_14 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_Lim, __pyx_v_VLim) < 0) __PYX_ERR(0, 5023, __pyx_L1_error)
+5024: LSPoly=LSPoly, LSLim=LSLim,
if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_LSPoly, __pyx_v_LSPoly) < 0) __PYX_ERR(0, 5023, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_LSLim, __pyx_v_LSLim) < 0) __PYX_ERR(0, 5023, __pyx_L1_error)
+5025: LSVIn=LSVIn, Forbid=Forbid,
if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_LSVIn, __pyx_v_LSVIn) < 0) __PYX_ERR(0, 5023, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_Forbid, __pyx_v_Forbid) < 0) __PYX_ERR(0, 5023, __pyx_L1_error)
+5026: VType=VType, Test=Test)
if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_VType, __pyx_v_VType) < 0) __PYX_ERR(0, 5023, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_14, __pyx_n_s_Test, __pyx_v_Test) < 0) __PYX_ERR(0, 5023, __pyx_L1_error)
+5027: pir2 = Cpi*r[ii]**2
__pyx_t_7 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_r, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = PyNumber_Power(__pyx_t_14, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = PyNumber_Multiply(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_18 = __pyx_PyFloat_AsFloat(__pyx_t_14); if (unlikely((__pyx_t_18 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 5027, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_v_pir2 = __pyx_t_18;
+5028: for jj in range(0,nptsok):
__pyx_t_15 = __pyx_v_nptsok;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_jj = __pyx_t_17;
+5029: if vis[jj]:
__pyx_t_14 = __Pyx_GetItemInt(__pyx_v_vis, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5029, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5029, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; if (__pyx_t_9) { /* … */ } } }
+5030: sang[ii,ind[jj]] = pir2/k[jj]**2
__pyx_t_14 = PyFloat_FromDouble(__pyx_v_pir2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_k, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyNumber_Power(__pyx_t_2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_14 = __Pyx_GetItemInt(__pyx_v_ind, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_14); __pyx_t_7 = 0; __pyx_t_14 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sang), __pyx_t_6, __pyx_t_2) < 0)) __PYX_ERR(0, 5030, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5031: else:
+5032: pir2 = 2*Cpi
/*else*/ {
__pyx_v_pir2 = (2.0 * M_PI);
+5033: for ii in range(0,nt):
__pyx_t_4 = __pyx_v_nt;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+5034: k = np.sqrt((pos[0,ii]-ptstemp[0,:])**2
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__36); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyNumber_Subtract(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5035: + (pos[1,ii]-ptstemp[1,:])**2
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__42); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyNumber_Subtract(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Power(__pyx_t_5, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5035, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5036: + (pos[2,ii]-ptstemp[2,:])**2)
__pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_ptstemp, __pyx_tuple__32); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyNumber_Subtract(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) { __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_14); if (likely(__pyx_t_7)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); __Pyx_INCREF(__pyx_t_7); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_14, function); } } __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_3); __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_2); __pyx_t_2 = 0;
5037:
+5038: vis = LOS_isVis_PtFromPts_VesStruct(pos[0,ii], pos[1,ii],
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_LOS_isVis_PtFromPts_VesStruct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; /* … */ __pyx_t_5 = PyTuple_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_7); __Pyx_INCREF(__pyx_v_k); __Pyx_GIVEREF(__pyx_v_k); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_v_k); __Pyx_INCREF(__pyx_v_ptstemp); __Pyx_GIVEREF(__pyx_v_ptstemp); PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_ptstemp); __Pyx_INCREF(__pyx_v_VPoly); __Pyx_GIVEREF(__pyx_v_VPoly); PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_v_VPoly); __Pyx_INCREF(__pyx_v_VIn); __Pyx_GIVEREF(__pyx_v_VIn); PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_v_VIn); __pyx_t_14 = 0; __pyx_t_3 = 0; __pyx_t_7 = 0; /* … */ __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_XDECREF_SET(__pyx_v_vis, __pyx_t_3); __pyx_t_3 = 0;
+5039: pos[2,ii], k, ptstemp,
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5040: VPoly, VIn, Lim=VLim,
__pyx_t_7 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_Lim, __pyx_v_VLim) < 0) __PYX_ERR(0, 5040, __pyx_L1_error)
+5041: LSPoly=LSPoly, LSLim=LSLim,
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_LSPoly, __pyx_v_LSPoly) < 0) __PYX_ERR(0, 5040, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_LSLim, __pyx_v_LSLim) < 0) __PYX_ERR(0, 5040, __pyx_L1_error)
+5042: LSVIn=LSVIn, Forbid=Forbid,
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_LSVIn, __pyx_v_LSVIn) < 0) __PYX_ERR(0, 5040, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_Forbid, __pyx_v_Forbid) < 0) __PYX_ERR(0, 5040, __pyx_L1_error)
+5043: VType=VType, Test=Test)
if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_VType, __pyx_v_VType) < 0) __PYX_ERR(0, 5040, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_Test, __pyx_v_Test) < 0) __PYX_ERR(0, 5040, __pyx_L1_error)
+5044: for jj in range(0,nptsok):
__pyx_t_15 = __pyx_v_nptsok;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_jj = __pyx_t_17;
+5045: if vis[jj]:
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_vis, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (__pyx_t_9) { /* … */ } } } } __pyx_L7:;
+5046: sang[ii,ind[jj]] = pir2*(1-Csqrt(1-r[ii]**2/k[jj]**2))
__pyx_t_3 = __Pyx_GetItemInt(__pyx_v_r, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_k, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_3, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyFloat_FromDouble((__pyx_v_pir2 * (1.0 - sqrt(__pyx_t_19)))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_ind, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_7); __pyx_t_3 = 0; __pyx_t_7 = 0; if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_sang), __pyx_t_2, __pyx_t_5) < 0)) __PYX_ERR(0, 5046, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5047:
5048: else:
+5049: if approx and out_coefonly:
/*else*/ {
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_approx); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5049, __pyx_L1_error)
if (__pyx_t_1) {
} else {
__pyx_t_9 = __pyx_t_1;
goto __pyx_L26_bool_binop_done;
}
__pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_out_coefonly); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5049, __pyx_L1_error)
__pyx_t_9 = __pyx_t_1;
__pyx_L26_bool_binop_done:;
if (__pyx_t_9) {
/* … */
goto __pyx_L25;
}
+5050: for ii in range(0,nt):
__pyx_t_4 = __pyx_v_nt;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+5051: for jj in range(0,npts):
__pyx_t_15 = __pyx_v_npts;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_jj = __pyx_t_17;
+5052: dij2 = ((pos[0,ii]-pts[0,jj])**2
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Subtract(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Power(__pyx_t_7, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5053: + (pos[1,ii]-pts[1,jj])**2
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Subtract(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Power(__pyx_t_3, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5054: + (pos[2,ii]-pts[2,jj])**2)
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_2); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Subtract(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Power(__pyx_t_7, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5054, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_dij2, __pyx_t_7); __pyx_t_7 = 0;
+5055: sang[ii,jj] = Cpi/dij2
__pyx_t_7 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_v_dij2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5055, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_20 = __pyx_v_ii; __pyx_t_21 = __pyx_v_jj; *__Pyx_BufPtrCContig2d(double *, __pyx_pybuffernd_sang.rcbuffer->pybuffer.buf, __pyx_t_20, __pyx_pybuffernd_sang.diminfo[0].strides, __pyx_t_21, __pyx_pybuffernd_sang.diminfo[1].strides) = __pyx_t_19; } }
+5056: elif approx:
__pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_approx); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 5056, __pyx_L1_error) if (__pyx_t_9) { /* … */ goto __pyx_L25; }
+5057: for ii in range(0,nt):
__pyx_t_4 = __pyx_v_nt;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+5058: pir2 = Cpi*r[ii]**2
__pyx_t_2 = PyFloat_FromDouble(M_PI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_r, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyNumber_Power(__pyx_t_7, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_18 = __pyx_PyFloat_AsFloat(__pyx_t_7); if (unlikely((__pyx_t_18 == (float)-1) && PyErr_Occurred())) __PYX_ERR(0, 5058, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_v_pir2 = __pyx_t_18;
+5059: for jj in range(0,npts):
__pyx_t_15 = __pyx_v_npts;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_jj = __pyx_t_17;
+5060: dij2 = ((pos[0,ii]-pts[0,jj])**2
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Power(__pyx_t_2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5061: + (pos[0,ii]-pts[0,jj])**2
__pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Subtract(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Power(__pyx_t_5, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5061, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5062: + (pos[0,ii]-pts[0,jj])**2)
__pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Power(__pyx_t_2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5062, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_XDECREF_SET(__pyx_v_dij2, __pyx_t_2); __pyx_t_2 = 0;
+5063: sang[ii,jj] = pir2/dij2
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_pir2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_v_dij2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5063, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_22 = __pyx_v_ii; __pyx_t_23 = __pyx_v_jj; *__Pyx_BufPtrCContig2d(double *, __pyx_pybuffernd_sang.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_sang.diminfo[0].strides, __pyx_t_23, __pyx_pybuffernd_sang.diminfo[1].strides) = __pyx_t_19; } }
5064: else:
+5065: pir2 = 2*Cpi
/*else*/ {
__pyx_v_pir2 = (2.0 * M_PI);
+5066: for ii in range(0,nt):
__pyx_t_4 = __pyx_v_nt;
__pyx_t_12 = __pyx_t_4;
for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
__pyx_v_ii = __pyx_t_13;
+5067: for jj in range(0,npts):
__pyx_t_15 = __pyx_v_npts;
__pyx_t_16 = __pyx_t_15;
for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
__pyx_v_jj = __pyx_t_17;
+5068: dij2 = ((pos[0,ii]-pts[0,jj])**2
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Subtract(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Power(__pyx_t_5, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5069: + (pos[0,ii]-pts[0,jj])**2
__pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Subtract(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Power(__pyx_t_7, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5070: + (pos[0,ii]-pts[0,jj])**2)
__pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_ii); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pos, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pts, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Subtract(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Power(__pyx_t_5, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_dij2, __pyx_t_5); __pyx_t_5 = 0;
+5071: sang[ii,jj] = pir2*(1-Csqrt(1-r[ii]**2/dij2))
__pyx_t_5 = __Pyx_GetItemInt(__pyx_v_r, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = PyNumber_Power(__pyx_t_5, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_v_dij2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_5, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_24 = __pyx_v_ii; __pyx_t_25 = __pyx_v_jj; *__Pyx_BufPtrCContig2d(double *, __pyx_pybuffernd_sang.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_sang.diminfo[0].strides, __pyx_t_25, __pyx_pybuffernd_sang.diminfo[1].strides) = (__pyx_v_pir2 * (1.0 - sqrt(__pyx_t_19))); } } } __pyx_L25:; } __pyx_L3:;
+5072: return sang
__Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_sang)); __pyx_r = ((PyObject *)__pyx_v_sang); goto __pyx_L0;
5073:
5074: # ==============================================================================
5075: #
5076: # VECTOR CALCULUS HELPERS
5077: #
5078: # ==============================================================================
+5079: cdef inline void compute_cross_prod(const double[3] vec_a,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(double *__pyx_v_vec_a, double *__pyx_v_vec_b, double *__pyx_v_res) {
/* … */
/* function exit code */
__pyx_L0:;
}
5080: const double[3] vec_b,
5081: double[3] res) nogil:
+5082: res[0] = vec_a[1]*vec_b[2] - vec_a[2]*vec_b[1]
(__pyx_v_res[0]) = (((__pyx_v_vec_a[1]) * (__pyx_v_vec_b[2])) - ((__pyx_v_vec_a[2]) * (__pyx_v_vec_b[1])));
+5083: res[1] = vec_a[2]*vec_b[0] - vec_a[0]*vec_b[2]
(__pyx_v_res[1]) = (((__pyx_v_vec_a[2]) * (__pyx_v_vec_b[0])) - ((__pyx_v_vec_a[0]) * (__pyx_v_vec_b[2])));
+5084: res[2] = vec_a[0]*vec_b[1] - vec_a[1]*vec_b[0]
(__pyx_v_res[2]) = (((__pyx_v_vec_a[0]) * (__pyx_v_vec_b[1])) - ((__pyx_v_vec_a[1]) * (__pyx_v_vec_b[0])));
+5085: return
goto __pyx_L0;
5086:
+5087: cdef inline double compute_dot_prod(const double[3] vec_a,
static CYTHON_INLINE double __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(double *__pyx_v_vec_a, double *__pyx_v_vec_b) {
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
5088: const double[3] vec_b) nogil:
+5089: return vec_a[0] * vec_b[0] + vec_a[1] * vec_b[1] + vec_a[2] * vec_b[2]
__pyx_r = ((((__pyx_v_vec_a[0]) * (__pyx_v_vec_b[0])) + ((__pyx_v_vec_a[1]) * (__pyx_v_vec_b[1]))) + ((__pyx_v_vec_a[2]) * (__pyx_v_vec_b[2]))); goto __pyx_L0;
5090:
5091:
+5092: cdef inline double compute_g(double s, double m2b2, double rm0sqr,
static CYTHON_INLINE double __pyx_f_4tofu_4geom_5_GG03_compute_g(double __pyx_v_s, double __pyx_v_m2b2, double __pyx_v_rm0sqr, double __pyx_v_m0sqr, double __pyx_v_b1sqr) {
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
5093: double m0sqr, double b1sqr) nogil:
+5094: return s + m2b2 - rm0sqr*s / Csqrt(m0sqr*s*s + b1sqr)
__pyx_r = ((__pyx_v_s + __pyx_v_m2b2) - ((__pyx_v_rm0sqr * __pyx_v_s) / sqrt((((__pyx_v_m0sqr * __pyx_v_s) * __pyx_v_s) + __pyx_v_b1sqr)))); goto __pyx_L0;
5095:
+5096: cdef inline double compute_bisect(double m2b2, double rm0sqr,
static CYTHON_INLINE double __pyx_f_4tofu_4geom_5_GG03_compute_bisect(double __pyx_v_m2b2, double __pyx_v_rm0sqr, double __pyx_v_m0sqr, double __pyx_v_b1sqr, double __pyx_v_smin, double __pyx_v_smax) {
int __pyx_v_maxIterations;
double __pyx_v_root;
CYTHON_UNUSED double __pyx_v_gmin;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
5097: double m0sqr, double b1sqr,
5098: double smin, double smax) nogil:
+5099: cdef int maxIterations = 10000
__pyx_v_maxIterations = 0x2710;
+5100: cdef double root = 0.
__pyx_v_root = 0.;
+5101: root = compute_find(m2b2, rm0sqr, m0sqr, b1sqr,
__pyx_v_root = __pyx_f_4tofu_4geom_5_GG03_compute_find(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, __pyx_v_smin, __pyx_v_smax, -1.0, 1.0, __pyx_v_maxIterations, __pyx_v_root);
5102: smin, smax, -1.0, 1.0, maxIterations, root)
+5103: gmin = compute_g(root, m2b2, rm0sqr, m0sqr, b1sqr)
__pyx_v_gmin = __pyx_f_4tofu_4geom_5_GG03_compute_g(__pyx_v_root, __pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr);
+5104: return root
__pyx_r = __pyx_v_root; goto __pyx_L0;
5105:
+5106: cdef inline double compute_find(double m2b2, double rm0sqr,
static CYTHON_INLINE double __pyx_f_4tofu_4geom_5_GG03_compute_find(double __pyx_v_m2b2, double __pyx_v_rm0sqr, double __pyx_v_m0sqr, double __pyx_v_b1sqr, double __pyx_v_t0, double __pyx_v_t1, double __pyx_v_f0, double __pyx_v_f1, int __pyx_v_maxIterations, double __pyx_v_root) {
double __pyx_v_fm;
double __pyx_v_product;
CYTHON_UNUSED long __pyx_v_i;
double __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
5107: double m0sqr, double b1sqr,
5108: double t0, double t1, double f0, double f1,
5109: int maxIterations, double root) nogil:
5110: cdef double fm, product
+5111: if (t0 < t1):
__pyx_t_1 = ((__pyx_v_t0 < __pyx_v_t1) != 0);
if (__pyx_t_1) {
/* … */
}
5112: # Test the endpoints to see whether F(t) is zero.
+5113: if f0 == 0.:
__pyx_t_1 = ((__pyx_v_f0 == 0.) != 0);
if (__pyx_t_1) {
/* … */
}
+5114: root = t0
__pyx_v_root = __pyx_v_t0;
+5115: return root
__pyx_r = __pyx_v_root;
goto __pyx_L0;
+5116: if f1 == 0.:
__pyx_t_1 = ((__pyx_v_f1 == 0.) != 0);
if (__pyx_t_1) {
/* … */
}
+5117: root = t1
__pyx_v_root = __pyx_v_t1;
+5118: return root
__pyx_r = __pyx_v_root;
goto __pyx_L0;
+5119: if f0*f1 > 0.:
__pyx_t_1 = (((__pyx_v_f0 * __pyx_v_f1) > 0.) != 0);
if (__pyx_t_1) {
/* … */
}
5120: # It is not known whether the interval bounds a root.
+5121: return root
__pyx_r = __pyx_v_root;
goto __pyx_L0;
+5122: for i in range(2, maxIterations+1):
__pyx_t_2 = (__pyx_v_maxIterations + 1);
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 2; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+5123: root = (0.5) * (t0 + t1)
__pyx_v_root = (0.5 * (__pyx_v_t0 + __pyx_v_t1));
+5124: if (root == t0 or root == t1):
__pyx_t_5 = ((__pyx_v_root == __pyx_v_t0) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_5 = ((__pyx_v_root == __pyx_v_t1) != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L10_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
5125: # The numbers t0 and t1 are consecutive floating-point
5126: # numbers.
+5127: break
goto __pyx_L8_break;
+5128: fm = compute_g(root, m2b2, rm0sqr, m0sqr, b1sqr)
__pyx_v_fm = __pyx_f_4tofu_4geom_5_GG03_compute_g(__pyx_v_root, __pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr);
+5129: product = fm * f0
__pyx_v_product = (__pyx_v_fm * __pyx_v_f0);
+5130: if (product < 0.):
__pyx_t_1 = ((__pyx_v_product < 0.) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L12;
}
+5131: t1 = root
__pyx_v_t1 = __pyx_v_root;
+5132: f1 = fm
__pyx_v_f1 = __pyx_v_fm;
+5133: elif (product > 0.):
__pyx_t_1 = ((__pyx_v_product > 0.) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L12;
}
+5134: t0 = root
__pyx_v_t0 = __pyx_v_root;
+5135: f0 = fm
__pyx_v_f0 = __pyx_v_fm;
5136: else:
+5137: break
/*else*/ {
goto __pyx_L8_break;
}
__pyx_L12:;
}
__pyx_L8_break:;
+5138: return root
__pyx_r = __pyx_v_root;
goto __pyx_L0;
5139: else:
+5140: return root
/*else*/ {
__pyx_r = __pyx_v_root;
goto __pyx_L0;
}
5141:
5142:
5143: # ==============================================================================
5144: #
5145: # DISTANCE CIRCLE - LOS
5146: #
5147: # ==============================================================================
+5148: def comp_dist_los_circle(np.ndarray[double,ndim=1,mode='c'] ray_vdir,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_65comp_dist_los_circle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_64comp_dist_los_circle[] = "\n This function computes the intersection of a Ray (or Line Of Sight)\n and a circle in 3D. It returns `kmin` and `dist`. Where `kmin` is the\n coefficient such that the ray of origin O = [ori1, ori2, ori3]\n and of directional vector D = [dir1, dir2, dir3] is closest to the circle\n of radius `radius` and centered `(0, 0, circ_z)` at the point\n P = O + kmin * D.\n And `distance` the distance between the two closest points (line closest\n and circle closest)\n The variable `norm_dir` is the squared norm of the direction of the ray.\n Params\n =====\n ray_vdir: (3) double array\n ray's director vector V such that P \\in Ray iff P(t) = O + t*V\n ray_orig : (3) double array\n ray's origin coordinates O such that P \\in Ray iff P(t) = O + t*V\n radius : double\n radius r of horizontal circle centered in (0,0,circ_z)\n circ_z : double\n 3rd coordinate of horizontal circle centered in (0,0,circ_z) of radius r\n norm_dir : double (optional)\n If for computation reasons it makes sense, you can pass the norm of the\n director vector\n Returns\n =======\n result : double (2) array\n - result[0] will contain the k coefficient to find the line point closest\n closest point\n - result[1] will contain the DISTANCE from line closest point to circle\n to the circle\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `dist_los_circle_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_65comp_dist_los_circle = {"comp_dist_los_circle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_65comp_dist_los_circle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_64comp_dist_los_circle};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_65comp_dist_los_circle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyArrayObject *__pyx_v_ray_vdir = 0;
PyArrayObject *__pyx_v_ray_orig = 0;
double __pyx_v_radius;
double __pyx_v_circ_z;
double __pyx_v_norm_dir;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_circle (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ray_vdir,&__pyx_n_s_ray_orig,&__pyx_n_s_radius,&__pyx_n_s_circ_z,&__pyx_n_s_norm_dir,0};
PyObject* values[5] = {0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle", 0, 4, 5, 1); __PYX_ERR(0, 5148, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle", 0, 4, 5, 2); __PYX_ERR(0, 5148, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_circ_z)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle", 0, 4, 5, 3); __PYX_ERR(0, 5148, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_dir);
if (value) { values[4] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "comp_dist_los_circle") < 0)) __PYX_ERR(0, 5148, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ray_vdir = ((PyArrayObject *)values[0]);
__pyx_v_ray_orig = ((PyArrayObject *)values[1]);
__pyx_v_radius = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_radius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5150, __pyx_L3_error)
__pyx_v_circ_z = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_circ_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5150, __pyx_L3_error)
if (values[4]) {
__pyx_v_norm_dir = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_norm_dir == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5150, __pyx_L3_error)
} else {
__pyx_v_norm_dir = ((double)-1.0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5148, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_circle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_vdir), __pyx_ptype_5numpy_ndarray, 1, "ray_vdir", 0))) __PYX_ERR(0, 5148, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_orig), __pyx_ptype_5numpy_ndarray, 1, "ray_orig", 0))) __PYX_ERR(0, 5149, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_64comp_dist_los_circle(__pyx_self, __pyx_v_ray_vdir, __pyx_v_ray_orig, __pyx_v_radius, __pyx_v_circ_z, __pyx_v_norm_dir);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_64comp_dist_los_circle(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ray_vdir, PyArrayObject *__pyx_v_ray_orig, double __pyx_v_radius, double __pyx_v_circ_z, double __pyx_v_norm_dir) {
double __pyx_v_res[2];
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_orig;
__Pyx_Buffer __pyx_pybuffer_ray_orig;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_vdir;
__Pyx_Buffer __pyx_pybuffer_ray_vdir;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_circle", 0);
__pyx_pybuffer_ray_vdir.pybuffer.buf = NULL;
__pyx_pybuffer_ray_vdir.refcount = 0;
__pyx_pybuffernd_ray_vdir.data = NULL;
__pyx_pybuffernd_ray_vdir.rcbuffer = &__pyx_pybuffer_ray_vdir;
__pyx_pybuffer_ray_orig.pybuffer.buf = NULL;
__pyx_pybuffer_ray_orig.refcount = 0;
__pyx_pybuffernd_ray_orig.data = NULL;
__pyx_pybuffernd_ray_orig.rcbuffer = &__pyx_pybuffer_ray_orig;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_vdir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5148, __pyx_L1_error)
}
__pyx_pybuffernd_ray_vdir.diminfo[0].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_vdir.diminfo[0].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_orig, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5148, __pyx_L1_error)
}
__pyx_pybuffernd_ray_orig.diminfo[0].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_orig.diminfo[0].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_circle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__222 = PyTuple_Pack(6, __pyx_n_s_ray_vdir, __pyx_n_s_ray_orig, __pyx_n_s_radius, __pyx_n_s_circ_z, __pyx_n_s_norm_dir, __pyx_n_s_res); if (unlikely(!__pyx_tuple__222)) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__222);
__Pyx_GIVEREF(__pyx_tuple__222);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_65comp_dist_los_circle, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_comp_dist_los_circle, __pyx_t_2) < 0) __PYX_ERR(0, 5148, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__223 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__222, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_comp_dist_los_circle, 5148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__223)) __PYX_ERR(0, 5148, __pyx_L1_error)
5149: np.ndarray[double,ndim=1,mode='c'] ray_orig,
5150: double radius, double circ_z, double norm_dir=-1.0):
5151: """
5152: This function computes the intersection of a Ray (or Line Of Sight)
5153: and a circle in 3D. It returns `kmin` and `dist`. Where `kmin` is the
5154: coefficient such that the ray of origin O = [ori1, ori2, ori3]
5155: and of directional vector D = [dir1, dir2, dir3] is closest to the circle
5156: of radius `radius` and centered `(0, 0, circ_z)` at the point
5157: P = O + kmin * D.
5158: And `distance` the distance between the two closest points (line closest
5159: and circle closest)
5160: The variable `norm_dir` is the squared norm of the direction of the ray.
5161: Params
5162: =====
5163: ray_vdir: (3) double array
5164: ray's director vector V such that P \in Ray iff P(t) = O + t*V
5165: ray_orig : (3) double array
5166: ray's origin coordinates O such that P \in Ray iff P(t) = O + t*V
5167: radius : double
5168: radius r of horizontal circle centered in (0,0,circ_z)
5169: circ_z : double
5170: 3rd coordinate of horizontal circle centered in (0,0,circ_z) of radius r
5171: norm_dir : double (optional)
5172: If for computation reasons it makes sense, you can pass the norm of the
5173: director vector
5174: Returns
5175: =======
5176: result : double (2) array
5177: - result[0] will contain the k coefficient to find the line point closest
5178: closest point
5179: - result[1] will contain the DISTANCE from line closest point to circle
5180: to the circle
5181: ---
5182: This is the PYTHON function, use only if you need this computation from
5183: Python, if you need it from Cython, use `dist_los_circle_core`
5184: """
5185: cdef double[2] res
+5186: dist_los_circle_core(<double*>ray_vdir.data,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(((double *)__pyx_v_ray_vdir->data), ((double *)__pyx_v_ray_orig->data), __pyx_v_radius, __pyx_v_circ_z, __pyx_v_norm_dir, __pyx_v_res);
5187: <double*>ray_orig.data,
5188: radius, circ_z, norm_dir, res)
+5189: return np.asarray(res)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_carray_to_py_double(__pyx_v_res, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5189, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
5190:
+5191: cdef inline void dist_los_circle_core(const double[3] direct,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(double *__pyx_v_direct, double *__pyx_v_origin, double const __pyx_v_radius, double const __pyx_v_circ_z, double __pyx_v_norm_dir, double *__pyx_v_result) {
int __pyx_v_numRoots;
int __pyx_v_i;
double __pyx_v_zero;
double __pyx_v_m0sqr;
double __pyx_v_m0;
double __pyx_v_rm0;
double __pyx_v_lambd;
double __pyx_v_m2b2;
double __pyx_v_b1sqr;
double __pyx_v_b1;
double __pyx_v_twoThirds;
double __pyx_v_sHat;
double __pyx_v_gHat;
double __pyx_v_cutoff;
double __pyx_v_s;
double __pyx_v_D[3];
double __pyx_v_MxN[3];
double __pyx_v_DxN[3];
double __pyx_v_NxDelta[3];
double __pyx_v_circle_normal[3];
double __pyx_v_roots[3];
double __pyx_v_diff[3];
double __pyx_v_direction[3];
double __pyx_v_line_closest[3];
double __pyx_v_circle_center[3];
double __pyx_v_circle_closest[3];
double __pyx_v_tmin;
double __pyx_v_distance;
double __pyx_v_inv_norm_dir;
double __pyx_v_rm0sqr;
double __pyx_v_t;
double __pyx_v_norm_ppar;
/* … */
/* function exit code */
__pyx_L0:;
}
5192: const double[3] origin,
5193: const double radius, const double circ_z,
5194: double norm_dir,
5195: double[2] result) nogil:
5196: """
5197: This function computes the intersection of a Ray (or Line Of Sight)
5198: and a horizontal circle in 3. It returns `kmin` the coefficient such that
5199: the ray of origin O = [ori1, ori2, ori3] and of directional vector
5200: D = [dir1, dir2, dir3] is closest to the circle of radius `radius`,
5201: center `(0, 0, circ_z)` and of normal (0,0,1) at the point P = O + kmin * D.
5202: And `distance` the distance between the two closest points
5203: The variable `norm_dir` is the norm of the direction of the ray.
5204: if you haven't normalized the ray (and for optimization reasons you dont
5205: want to, you can pass norm_dir = -1
5206: ---
5207: Source: https://www.geometrictools.com/Documentation/DistanceToCircle3.pdf
5208: The line is P(t) = B+t*M. The circle is |X-C| = r with Dot(N,X-C)=0.
5209:
5210: Params
5211: ======
5212: direct : double (3) array
5213: directional vector of the ray
5214: origin : double (3) array
5215: origin of the array (in 3d)
5216: radius : double
5217: radius of the circle
5218: circ_z : double
5219: 3rd coordinate of the center of the circle
5220: ie. the circle center is (0,0, circ_z)
5221: norm_dir : double (3) array
5222: normal of the direction of the vector (for computation performance)
5223: result : double (2) array
5224: - result[0] will contain the k coefficient to find the line point closest
5225: closest point
5226: - result[1] will contain the DISTANCE from line closest point to circle
5227: to the circle
5228: """
5229: cdef int numRoots, i
+5230: cdef double zero = 0., m0sqr, m0, rm0
__pyx_v_zero = 0.;
5231: cdef double lambd, m2b2, b1sqr, b1, r0sqr, twoThirds, sHat, gHat, cutoff, s
5232: cdef double[3] D
5233: cdef double[3] MxN
5234: cdef double[3] DxN
5235: cdef double[3] NxDelta
5236: cdef double[3] circle_normal
5237: cdef double[3] roots
5238: cdef double[3] diff
5239: cdef double[3] direction
5240: cdef double[3] line_closest
5241: cdef double[3] circle_center
5242: cdef double[3] circle_closest
5243: cdef double tmin
5244: cdef double distance
5245: cdef double inv_norm_dir
5246:
+5247: if norm_dir < 0:
__pyx_t_1 = ((__pyx_v_norm_dir < 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
+5248: norm_dir = Csqrt(compute_dot_prod(direct, direct))
__pyx_v_norm_dir = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_direct, __pyx_v_direct));
+5249: inv_norm_dir = 1./ norm_dir
__pyx_v_inv_norm_dir = (1. / __pyx_v_norm_dir);
5250: # .. initialization .....
+5251: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5252: circle_center[i] = 0.
(__pyx_v_circle_center[__pyx_v_i]) = 0.;
+5253: circle_normal[i] = 0.
(__pyx_v_circle_normal[__pyx_v_i]) = 0.;
+5254: roots[i] = 0.
(__pyx_v_roots[__pyx_v_i]) = 0.;
5255: # we normalize direction
+5256: direction[i] = direct[i] * inv_norm_dir
(__pyx_v_direction[__pyx_v_i]) = ((__pyx_v_direct[__pyx_v_i]) * __pyx_v_inv_norm_dir); }
+5257: circle_normal[2] = 1
(__pyx_v_circle_normal[2]) = 1.0;
+5258: circle_center[2] = circ_z
(__pyx_v_circle_center[2]) = __pyx_v_circ_z;
5259:
+5260: D[0] = origin[0]
(__pyx_v_D[0]) = (__pyx_v_origin[0]);
+5261: D[1] = origin[1]
(__pyx_v_D[1]) = (__pyx_v_origin[1]);
+5262: D[2] = origin[2] - circ_z
(__pyx_v_D[2]) = ((__pyx_v_origin[2]) - __pyx_v_circ_z);
+5263: compute_cross_prod(direction, circle_normal, MxN)
__pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(__pyx_v_direction, __pyx_v_circle_normal, __pyx_v_MxN);
+5264: compute_cross_prod(D, circle_normal, DxN)
__pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(__pyx_v_D, __pyx_v_circle_normal, __pyx_v_DxN);
+5265: m0sqr = compute_dot_prod(MxN, MxN)
__pyx_v_m0sqr = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_MxN, __pyx_v_MxN);
5266:
+5267: if (m0sqr > zero):
__pyx_t_1 = ((__pyx_v_m0sqr > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L6;
}
5268: # Compute the critical points s for F'(s) = 0.
+5269: numRoots = 0
__pyx_v_numRoots = 0;
5270:
5271: # The line direction M and the plane normal N are not parallel. Move
5272: # the line origin B = (b0,b1,b2) to B' = B + lambd*direction =
5273: # (0,b1',b2').
+5274: m0 = Csqrt(m0sqr)
__pyx_v_m0 = sqrt(__pyx_v_m0sqr);
+5275: rm0 = radius * m0
__pyx_v_rm0 = (__pyx_v_radius * __pyx_v_m0);
+5276: lambd = -compute_dot_prod(MxN, DxN) / m0sqr
__pyx_v_lambd = ((-__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_MxN, __pyx_v_DxN)) / __pyx_v_m0sqr);
+5277: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5278: D[i] += lambd * direction[i]
__pyx_t_3 = __pyx_v_i;
(__pyx_v_D[__pyx_t_3]) = ((__pyx_v_D[__pyx_t_3]) + (__pyx_v_lambd * (__pyx_v_direction[__pyx_v_i])));
+5279: DxN[i] += lambd * MxN[i]
__pyx_t_3 = __pyx_v_i;
(__pyx_v_DxN[__pyx_t_3]) = ((__pyx_v_DxN[__pyx_t_3]) + (__pyx_v_lambd * (__pyx_v_MxN[__pyx_v_i])));
}
+5280: m2b2 = compute_dot_prod(direction, D)
__pyx_v_m2b2 = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_direction, __pyx_v_D);
+5281: b1sqr = compute_dot_prod(DxN, DxN)
__pyx_v_b1sqr = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_DxN, __pyx_v_DxN);
+5282: if (b1sqr > zero) :
__pyx_t_1 = ((__pyx_v_b1sqr > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L9;
}
5283: # B' = (0,b1',b2') where b1' != 0. See Sections 1.1.2 and 1.2.2
5284: # of the PDF documentation.
+5285: b1 = Csqrt(b1sqr)
__pyx_v_b1 = sqrt(__pyx_v_b1sqr);
+5286: rm0sqr = radius * m0sqr
__pyx_v_rm0sqr = (__pyx_v_radius * __pyx_v_m0sqr);
+5287: if (rm0sqr > b1):
__pyx_t_1 = ((__pyx_v_rm0sqr > __pyx_v_b1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L10;
}
+5288: twoThirds = 2.0 / 3.0
__pyx_v_twoThirds = (2.0 / 3.0);
+5289: sHat = Csqrt((rm0sqr * b1sqr)**twoThirds - b1sqr) / m0
__pyx_v_sHat = (sqrt((pow((__pyx_v_rm0sqr * __pyx_v_b1sqr), __pyx_v_twoThirds) - __pyx_v_b1sqr)) / __pyx_v_m0);
+5290: gHat = rm0sqr * sHat / Csqrt(m0sqr * sHat * sHat + b1sqr)
__pyx_v_gHat = ((__pyx_v_rm0sqr * __pyx_v_sHat) / sqrt((((__pyx_v_m0sqr * __pyx_v_sHat) * __pyx_v_sHat) + __pyx_v_b1sqr)));
+5291: cutoff = gHat - sHat
__pyx_v_cutoff = (__pyx_v_gHat - __pyx_v_sHat);
+5292: if (m2b2 <= -cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 <= (-__pyx_v_cutoff)) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L11;
}
+5293: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2, -m2b2 + rm0)
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, (-__pyx_v_m2b2), ((-__pyx_v_m2b2) + __pyx_v_rm0));
+5294: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5295: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5296: if (m2b2 == -cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 == (-__pyx_v_cutoff)) != 0);
if (__pyx_t_1) {
/* … */
}
+5297: roots[numRoots] = -sHat
(__pyx_v_roots[__pyx_v_numRoots]) = (-__pyx_v_sHat);
+5298: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5299: elif (m2b2 >= cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 >= __pyx_v_cutoff) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L11;
}
+5300: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_m2b2));
5301: -m2b2)
+5302: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5303: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5304: if (m2b2 == cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 == __pyx_v_cutoff) != 0);
if (__pyx_t_1) {
/* … */
}
+5305: roots[numRoots] = sHat
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_sHat;
+5306: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5307: else:
+5308: if (m2b2 <= zero):
/*else*/ {
__pyx_t_1 = ((__pyx_v_m2b2 <= __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L14;
}
+5309: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, (-__pyx_v_m2b2), ((-__pyx_v_m2b2) + __pyx_v_rm0));
5310: -m2b2 + rm0)
+5311: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5312: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5313: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_sHat));
5314: -sHat)
+5315: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5316: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5317: else:
+5318: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
/*else*/ {
/* … */
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_m2b2));
5319: -m2b2)
+5320: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5321: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5322: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, sHat,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, __pyx_v_sHat, ((-__pyx_v_m2b2) + __pyx_v_rm0));
5323: -m2b2 + rm0)
+5324: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5325: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
}
__pyx_L14:;
}
__pyx_L11:;
5326: else:
+5327: if (m2b2 < zero):
/*else*/ {
__pyx_t_1 = ((__pyx_v_m2b2 < __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+5328: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, (-__pyx_v_m2b2), ((-__pyx_v_m2b2) + __pyx_v_rm0));
5329: -m2b2 + rm0)
+5330: elif (m2b2 > zero):
__pyx_t_1 = ((__pyx_v_m2b2 > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+5331: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_m2b2));
5332: -m2b2)
5333: else:
+5334: s = zero
/*else*/ {
__pyx_v_s = __pyx_v_zero;
}
__pyx_L15:;
+5335: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5336: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
}
__pyx_L10:;
5337: else:
5338: # The new line origin is B' = (0,0,b2').
+5339: if (m2b2 < zero):
/*else*/ {
__pyx_t_1 = ((__pyx_v_m2b2 < __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L16;
}
+5340: s = -m2b2 + rm0
__pyx_v_s = ((-__pyx_v_m2b2) + __pyx_v_rm0);
+5341: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5342: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5343:
+5344: elif (m2b2 > zero):
__pyx_t_1 = ((__pyx_v_m2b2 > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L16;
}
+5345: s = -m2b2 - rm0
__pyx_v_s = ((-__pyx_v_m2b2) - __pyx_v_rm0);
+5346: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5347: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5348: else:
+5349: s = -m2b2 + rm0
/*else*/ {
__pyx_v_s = ((-__pyx_v_m2b2) + __pyx_v_rm0);
+5350: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5351: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5352: s = -m2b2 - rm0
__pyx_v_s = ((-__pyx_v_m2b2) - __pyx_v_rm0);
+5353: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5354: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
}
__pyx_L16:;
}
__pyx_L9:;
5355: # Checking which one is the closest solution............................
+5356: tmin = roots[0] + lambd
__pyx_v_tmin = ((__pyx_v_roots[0]) + __pyx_v_lambd);
+5357: for i in range(1,numRoots):
__pyx_t_2 = __pyx_v_numRoots;
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 1; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+5358: t = roots[i] + lambd
__pyx_v_t = ((__pyx_v_roots[__pyx_v_i]) + __pyx_v_lambd);
+5359: if (t>0 and t<tmin):
__pyx_t_5 = ((__pyx_v_t > 0.0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_5 = ((__pyx_v_t < __pyx_v_tmin) != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L20_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
}
+5360: tmin = t
__pyx_v_tmin = __pyx_v_t;
+5361: if tmin < 0:
__pyx_t_1 = ((__pyx_v_tmin < 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
+5362: tmin = 0.
__pyx_v_tmin = 0.;
5363: # Now that we know the closest point on the line we can compute the
5364: # closest point on the circle and compute the distance
+5365: line_closest[0] = origin[0] + tmin * direction[0]
(__pyx_v_line_closest[0]) = ((__pyx_v_origin[0]) + (__pyx_v_tmin * (__pyx_v_direction[0])));
+5366: line_closest[1] = origin[1] + tmin * direction[1]
(__pyx_v_line_closest[1]) = ((__pyx_v_origin[1]) + (__pyx_v_tmin * (__pyx_v_direction[1])));
+5367: line_closest[2] = origin[2] + tmin * direction[2]
(__pyx_v_line_closest[2]) = ((__pyx_v_origin[2]) + (__pyx_v_tmin * (__pyx_v_direction[2])));
+5368: compute_cross_prod(circle_normal, line_closest, NxDelta)
__pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(__pyx_v_circle_normal, __pyx_v_line_closest, __pyx_v_NxDelta);
+5369: if not (Cabs(NxDelta[0]) <= _VSMALL
__pyx_t_5 = ((fabs((__pyx_v_NxDelta[0])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
/* … */
__pyx_t_5 = ((!__pyx_t_1) != 0);
if (__pyx_t_5) {
/* … */
goto __pyx_L23;
}
+5370: and Cabs(NxDelta[1]) <= _VSMALL
__pyx_t_5 = ((fabs((__pyx_v_NxDelta[1])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
+5371: and Cabs(NxDelta[2]) <= _VSMALL):
__pyx_t_5 = ((fabs((__pyx_v_NxDelta[2])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L24_bool_binop_done:;
+5372: norm_ppar = Csqrt(line_closest[0]*line_closest[0]
__pyx_v_norm_ppar = sqrt((((__pyx_v_line_closest[0]) * (__pyx_v_line_closest[0])) + ((__pyx_v_line_closest[1]) * (__pyx_v_line_closest[1]))));
5373: + line_closest[1]*line_closest[1])
+5374: circle_closest[0] = radius * line_closest[0] / norm_ppar
(__pyx_v_circle_closest[0]) = ((__pyx_v_radius * (__pyx_v_line_closest[0])) / __pyx_v_norm_ppar);
+5375: circle_closest[1] = radius * line_closest[1] / norm_ppar
(__pyx_v_circle_closest[1]) = ((__pyx_v_radius * (__pyx_v_line_closest[1])) / __pyx_v_norm_ppar);
+5376: circle_closest[2] = circle_center[2]
(__pyx_v_circle_closest[2]) = (__pyx_v_circle_center[2]);
+5377: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5378: diff[i] = line_closest[i] - circle_closest[i]
(__pyx_v_diff[__pyx_v_i]) = ((__pyx_v_line_closest[__pyx_v_i]) - (__pyx_v_circle_closest[__pyx_v_i]));
}
+5379: distance = Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff));
+5380: result[0] = tmin
(__pyx_v_result[0]) = __pyx_v_tmin;
+5381: result[1] = distance
(__pyx_v_result[1]) = __pyx_v_distance;
5382: else:
+5383: diff[0] = line_closest[0] - radius
/*else*/ {
(__pyx_v_diff[0]) = ((__pyx_v_line_closest[0]) - __pyx_v_radius);
+5384: diff[1] = line_closest[1]
(__pyx_v_diff[1]) = (__pyx_v_line_closest[1]);
+5385: diff[2] = line_closest[2] - circle_center[2]
(__pyx_v_diff[2]) = ((__pyx_v_line_closest[2]) - (__pyx_v_circle_center[2]));
+5386: distance = Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff));
+5387: result[0] = tmin
(__pyx_v_result[0]) = __pyx_v_tmin;
+5388: result[1] = distance
(__pyx_v_result[1]) = __pyx_v_distance;
}
__pyx_L23:;
5389: else:
5390: # The line direction and the plane normal are parallel.
5391: # There is only one solution the intersection between line and plane
+5392: if not (Cabs(DxN[0]) <= _VSMALL
/*else*/ {
/* … */
__pyx_t_1 = ((fabs((__pyx_v_DxN[0])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_1) {
} else {
__pyx_t_5 = __pyx_t_1;
goto __pyx_L30_bool_binop_done;
}
/* … */
__pyx_t_1 = ((!__pyx_t_5) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L29;
}
+5393: and Cabs(DxN[1]) <= _VSMALL
__pyx_t_1 = ((fabs((__pyx_v_DxN[1])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_1) {
} else {
__pyx_t_5 = __pyx_t_1;
goto __pyx_L30_bool_binop_done;
}
+5394: and Cabs(DxN[2]) <= _VSMALL):
__pyx_t_1 = ((fabs((__pyx_v_DxN[2])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
__pyx_t_5 = __pyx_t_1;
__pyx_L30_bool_binop_done:;
5395: # The line is A+t*N but with A != C.
+5396: t = -compute_dot_prod(direction, D)
__pyx_v_t = (-__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_direction, __pyx_v_D));
5397: # We compute line closest
+5398: line_closest[0] = origin[0] + t * direction[0]
(__pyx_v_line_closest[0]) = ((__pyx_v_origin[0]) + (__pyx_v_t * (__pyx_v_direction[0])));
+5399: line_closest[1] = origin[1] + t * direction[1]
(__pyx_v_line_closest[1]) = ((__pyx_v_origin[1]) + (__pyx_v_t * (__pyx_v_direction[1])));
+5400: line_closest[2] = origin[2] + t * direction[2]
(__pyx_v_line_closest[2]) = ((__pyx_v_origin[2]) + (__pyx_v_t * (__pyx_v_direction[2])));
5401: # We compute cirlce closest
+5402: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5403: diff[i] = line_closest[i] - circle_center[i]
(__pyx_v_diff[__pyx_v_i]) = ((__pyx_v_line_closest[__pyx_v_i]) - (__pyx_v_circle_center[__pyx_v_i]));
}
+5404: distance = radius / Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = (__pyx_v_radius / sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff)));
+5405: circle_closest[0] = line_closest[0] * distance
(__pyx_v_circle_closest[0]) = ((__pyx_v_line_closest[0]) * __pyx_v_distance);
+5406: circle_closest[1] = line_closest[1] * distance
(__pyx_v_circle_closest[1]) = ((__pyx_v_line_closest[1]) * __pyx_v_distance);
+5407: circle_closest[2] = circ_z + (line_closest[2] - circ_z) * distance
(__pyx_v_circle_closest[2]) = (__pyx_v_circ_z + (((__pyx_v_line_closest[2]) - __pyx_v_circ_z) * __pyx_v_distance));
+5408: if t < 0:
__pyx_t_1 = ((__pyx_v_t < 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
5409: # fi t is negative, we take origin as closest point
+5410: line_closest[0] = origin[0]
(__pyx_v_line_closest[0]) = (__pyx_v_origin[0]);
+5411: line_closest[1] = origin[1]
(__pyx_v_line_closest[1]) = (__pyx_v_origin[1]);
+5412: line_closest[2] = origin[2]
(__pyx_v_line_closest[2]) = (__pyx_v_origin[2]);
+5413: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5414: diff[i] = line_closest[i] - circle_closest[i]
(__pyx_v_diff[__pyx_v_i]) = ((__pyx_v_line_closest[__pyx_v_i]) - (__pyx_v_circle_closest[__pyx_v_i]));
}
+5415: distance = Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff));
+5416: result[0] = t
(__pyx_v_result[0]) = __pyx_v_t;
+5417: result[1] = distance
(__pyx_v_result[1]) = __pyx_v_distance;
5418: else:
5419: # The line direction and the normal vector are on the same line
5420: # so C is the closest point for the circle and the distance is
5421: # the radius unless the ray's origin is after the circle center
+5422: if (origin[2] * direction[2] <= circle_center[2] * direction[2]) :
/*else*/ {
__pyx_t_1 = ((((__pyx_v_origin[2]) * (__pyx_v_direction[2])) <= ((__pyx_v_circle_center[2]) * (__pyx_v_direction[2]))) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L38;
}
+5423: t = Cabs(circle_center[2] - origin[2])
__pyx_v_t = fabs(((__pyx_v_circle_center[2]) - (__pyx_v_origin[2])));
+5424: result[0] = t
(__pyx_v_result[0]) = __pyx_v_t;
+5425: result[1] = radius
(__pyx_v_result[1]) = __pyx_v_radius;
5426: else:
+5427: t = Cabs(circle_center[2] - origin[2])
/*else*/ {
__pyx_v_t = fabs(((__pyx_v_circle_center[2]) - (__pyx_v_origin[2])));
+5428: result[0] = 0
(__pyx_v_result[0]) = 0.0;
+5429: result[1] = Csqrt(radius*radius + t*t)
(__pyx_v_result[1]) = sqrt(((__pyx_v_radius * __pyx_v_radius) + (__pyx_v_t * __pyx_v_t)));
}
__pyx_L38:;
}
__pyx_L29:;
}
__pyx_L6:;
+5430: result[0] = result[0] * inv_norm_dir
(__pyx_v_result[0]) = ((__pyx_v_result[0]) * __pyx_v_inv_norm_dir);
+5431: return
goto __pyx_L0;
5432:
5433:
+5434: def comp_dist_los_circle_vec(int nlos, int ncircles,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_67comp_dist_los_circle_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_66comp_dist_los_circle_vec[] = "\n This function computes the intersection of a Ray (or Line Of Sight)\n and a circle in 3D. It returns `kmin`, the coefficient such that the\n ray of origin O = [ori1, ori2, ori3] and of directional vector\n D = [dir1, dir2, dir3] is closest to the circle of radius `radius`\n and centered `(0, 0, circ_z)` at the point P = O + kmin * D.\n The variable `norm_dir` is the squared norm of the direction of the ray.\n This is the vectorial version, we expect the directions and origins to be:\n dirs = [[dir1_los1, dir2_los1, dir3_los1], [dir1_los2,...]\n oris = [[ori1_los1, ori2_los1, ori3_los1], [ori1_los2,...]\n Returns\n =======\n res : (2, nlos, ncircles)\n res = [res_k, res_d] where res_k is a (nlos, ncircles) numpy array\n with the k coefficients for each LOS where the minimum distance\n to each circle is reached\n is met for each circle, and res_d is a (nlos, ncircles) numpy array\n with the distance between each LOS to each circle\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `dist_los_circle_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_67comp_dist_los_circle_vec = {"comp_dist_los_circle_vec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_67comp_dist_los_circle_vec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_66comp_dist_los_circle_vec};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_67comp_dist_los_circle_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_nlos;
int __pyx_v_ncircles;
PyArrayObject *__pyx_v_dirs = 0;
PyArrayObject *__pyx_v_oris = 0;
PyArrayObject *__pyx_v_circle_radius = 0;
PyArrayObject *__pyx_v_circle_z = 0;
PyArrayObject *__pyx_v_norm_dir = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_circle_vec (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nlos,&__pyx_n_s_ncircles,&__pyx_n_s_dirs,&__pyx_n_s_oris,&__pyx_n_s_circle_radius,&__pyx_n_s_circle_z,&__pyx_n_s_norm_dir,0};
PyObject* values[7] = {0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_66comp_dist_los_circle_vec(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nlos, int __pyx_v_ncircles, PyArrayObject *__pyx_v_dirs, PyArrayObject *__pyx_v_oris, PyArrayObject *__pyx_v_circle_radius, PyArrayObject *__pyx_v_circle_z, PyArrayObject *__pyx_v_norm_dir) {
arrayobject *__pyx_v_kmin_tab = 0;
arrayobject *__pyx_v_dist_tab = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_circle_radius;
__Pyx_Buffer __pyx_pybuffer_circle_radius;
__Pyx_LocalBuf_ND __pyx_pybuffernd_circle_z;
__Pyx_Buffer __pyx_pybuffer_circle_z;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dirs;
__Pyx_Buffer __pyx_pybuffer_dirs;
__Pyx_LocalBuf_ND __pyx_pybuffernd_norm_dir;
__Pyx_Buffer __pyx_pybuffer_norm_dir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_oris;
__Pyx_Buffer __pyx_pybuffer_oris;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_circle_vec", 0);
__Pyx_INCREF((PyObject *)__pyx_v_norm_dir);
__pyx_pybuffer_dirs.pybuffer.buf = NULL;
__pyx_pybuffer_dirs.refcount = 0;
__pyx_pybuffernd_dirs.data = NULL;
__pyx_pybuffernd_dirs.rcbuffer = &__pyx_pybuffer_dirs;
__pyx_pybuffer_oris.pybuffer.buf = NULL;
__pyx_pybuffer_oris.refcount = 0;
__pyx_pybuffernd_oris.data = NULL;
__pyx_pybuffernd_oris.rcbuffer = &__pyx_pybuffer_oris;
__pyx_pybuffer_circle_radius.pybuffer.buf = NULL;
__pyx_pybuffer_circle_radius.refcount = 0;
__pyx_pybuffernd_circle_radius.data = NULL;
__pyx_pybuffernd_circle_radius.rcbuffer = &__pyx_pybuffer_circle_radius;
__pyx_pybuffer_circle_z.pybuffer.buf = NULL;
__pyx_pybuffer_circle_z.refcount = 0;
__pyx_pybuffernd_circle_z.data = NULL;
__pyx_pybuffernd_circle_z.rcbuffer = &__pyx_pybuffer_circle_z;
__pyx_pybuffer_norm_dir.pybuffer.buf = NULL;
__pyx_pybuffer_norm_dir.refcount = 0;
__pyx_pybuffernd_norm_dir.data = NULL;
__pyx_pybuffernd_norm_dir.rcbuffer = &__pyx_pybuffer_norm_dir;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dirs.rcbuffer->pybuffer, (PyObject*)__pyx_v_dirs, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5434, __pyx_L1_error)
}
__pyx_pybuffernd_dirs.diminfo[0].strides = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dirs.diminfo[0].shape = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_dirs.diminfo[1].strides = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_dirs.diminfo[1].shape = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_oris.rcbuffer->pybuffer, (PyObject*)__pyx_v_oris, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5434, __pyx_L1_error)
}
__pyx_pybuffernd_oris.diminfo[0].strides = __pyx_pybuffernd_oris.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_oris.diminfo[0].shape = __pyx_pybuffernd_oris.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_oris.diminfo[1].strides = __pyx_pybuffernd_oris.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_oris.diminfo[1].shape = __pyx_pybuffernd_oris.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_circle_radius.rcbuffer->pybuffer, (PyObject*)__pyx_v_circle_radius, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5434, __pyx_L1_error)
}
__pyx_pybuffernd_circle_radius.diminfo[0].strides = __pyx_pybuffernd_circle_radius.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_circle_radius.diminfo[0].shape = __pyx_pybuffernd_circle_radius.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_circle_z.rcbuffer->pybuffer, (PyObject*)__pyx_v_circle_z, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5434, __pyx_L1_error)
}
__pyx_pybuffernd_circle_z.diminfo[0].strides = __pyx_pybuffernd_circle_z.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_circle_z.diminfo[0].shape = __pyx_pybuffernd_circle_z.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer, (PyObject*)__pyx_v_norm_dir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5434, __pyx_L1_error)
}
__pyx_pybuffernd_norm_dir.diminfo[0].strides = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_norm_dir.diminfo[0].shape = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_13, 1);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_radius.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_z.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dirs.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_oris.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_circle_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_radius.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_z.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dirs.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_oris.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_kmin_tab);
__Pyx_XDECREF((PyObject *)__pyx_v_dist_tab);
__Pyx_XDECREF((PyObject *)__pyx_v_norm_dir);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__224 = PyTuple_Pack(9, __pyx_n_s_nlos, __pyx_n_s_ncircles, __pyx_n_s_dirs, __pyx_n_s_oris, __pyx_n_s_circle_radius, __pyx_n_s_circle_z, __pyx_n_s_norm_dir, __pyx_n_s_kmin_tab, __pyx_n_s_dist_tab); if (unlikely(!__pyx_tuple__224)) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__224);
__Pyx_GIVEREF(__pyx_tuple__224);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_67comp_dist_los_circle_vec, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_comp_dist_los_circle_vec, __pyx_t_2) < 0) __PYX_ERR(0, 5434, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__224, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_comp_dist_los_circle_vec, 5434, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(0, 5434, __pyx_L1_error)
5435: np.ndarray[double,ndim=2,mode='c'] dirs,
5436: np.ndarray[double,ndim=2,mode='c'] oris,
5437: np.ndarray[double,ndim=1,mode='c'] circle_radius,
5438: np.ndarray[double,ndim=1,mode='c'] circle_z,
+5439: np.ndarray[double,ndim=1,mode='c'] norm_dir = None):
values[6] = (PyObject *)((PyArrayObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlos)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ncircles)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle_vec", 0, 6, 7, 1); __PYX_ERR(0, 5434, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dirs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle_vec", 0, 6, 7, 2); __PYX_ERR(0, 5434, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_oris)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle_vec", 0, 6, 7, 3); __PYX_ERR(0, 5434, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_circle_radius)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle_vec", 0, 6, 7, 4); __PYX_ERR(0, 5434, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_circle_z)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle_vec", 0, 6, 7, 5); __PYX_ERR(0, 5434, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_dir);
if (value) { values[6] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "comp_dist_los_circle_vec") < 0)) __PYX_ERR(0, 5434, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_nlos = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nlos == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5434, __pyx_L3_error)
__pyx_v_ncircles = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_ncircles == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5434, __pyx_L3_error)
__pyx_v_dirs = ((PyArrayObject *)values[2]);
__pyx_v_oris = ((PyArrayObject *)values[3]);
__pyx_v_circle_radius = ((PyArrayObject *)values[4]);
__pyx_v_circle_z = ((PyArrayObject *)values[5]);
__pyx_v_norm_dir = ((PyArrayObject *)values[6]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("comp_dist_los_circle_vec", 0, 6, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5434, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_circle_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dirs), __pyx_ptype_5numpy_ndarray, 1, "dirs", 0))) __PYX_ERR(0, 5435, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_oris), __pyx_ptype_5numpy_ndarray, 1, "oris", 0))) __PYX_ERR(0, 5436, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_circle_radius), __pyx_ptype_5numpy_ndarray, 1, "circle_radius", 0))) __PYX_ERR(0, 5437, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_circle_z), __pyx_ptype_5numpy_ndarray, 1, "circle_z", 0))) __PYX_ERR(0, 5438, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_norm_dir), __pyx_ptype_5numpy_ndarray, 1, "norm_dir", 0))) __PYX_ERR(0, 5439, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_66comp_dist_los_circle_vec(__pyx_self, __pyx_v_nlos, __pyx_v_ncircles, __pyx_v_dirs, __pyx_v_oris, __pyx_v_circle_radius, __pyx_v_circle_z, __pyx_v_norm_dir);
5440: """
5441: This function computes the intersection of a Ray (or Line Of Sight)
5442: and a circle in 3D. It returns `kmin`, the coefficient such that the
5443: ray of origin O = [ori1, ori2, ori3] and of directional vector
5444: D = [dir1, dir2, dir3] is closest to the circle of radius `radius`
5445: and centered `(0, 0, circ_z)` at the point P = O + kmin * D.
5446: The variable `norm_dir` is the squared norm of the direction of the ray.
5447: This is the vectorial version, we expect the directions and origins to be:
5448: dirs = [[dir1_los1, dir2_los1, dir3_los1], [dir1_los2,...]
5449: oris = [[ori1_los1, ori2_los1, ori3_los1], [ori1_los2,...]
5450: Returns
5451: =======
5452: res : (2, nlos, ncircles)
5453: res = [res_k, res_d] where res_k is a (nlos, ncircles) numpy array
5454: with the k coefficients for each LOS where the minimum distance
5455: to each circle is reached
5456: is met for each circle, and res_d is a (nlos, ncircles) numpy array
5457: with the distance between each LOS to each circle
5458: ---
5459: This is the PYTHON function, use only if you need this computation from
5460: Python, if you need it from Cython, use `dist_los_circle_core`
5461: """
+5462: cdef array kmin_tab = clone(array('d'), nlos*ncircles, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), (__pyx_v_nlos * __pyx_v_ncircles), 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_kmin_tab = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
+5463: cdef array dist_tab = clone(array('d'), nlos*ncircles, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), (__pyx_v_nlos * __pyx_v_ncircles), 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5463, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dist_tab = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
5464:
+5465: if norm_dir is None:
__pyx_t_3 = (((PyObject *)__pyx_v_norm_dir) == Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+5466: norm_dir = -np.ones(nlos)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Negative(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 5466, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer); __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); if (unlikely(__pyx_t_8 < 0)) { PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer, (PyObject*)__pyx_v_norm_dir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0; } __pyx_pybuffernd_norm_dir.diminfo[0].strides = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_norm_dir.diminfo[0].shape = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 5466, __pyx_L1_error) } __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_norm_dir, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0;
+5467: comp_dist_los_circle_vec_core(nlos, ncircles,
__pyx_f_4tofu_4geom_5_GG03_comp_dist_los_circle_vec_core(__pyx_v_nlos, __pyx_v_ncircles, ((double *)__pyx_v_dirs->data), ((double *)__pyx_v_oris->data), ((double *)__pyx_v_circle_radius->data), ((double *)__pyx_v_circle_z->data), ((double *)__pyx_v_norm_dir->data), __pyx_t_12, __pyx_t_13); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_13, 1); __pyx_t_13.memview = NULL; __pyx_t_13.data = NULL;
5468: <double*>dirs.data,
5469: <double*>oris.data,
5470: <double*>circle_radius.data,
5471: <double*>circle_z.data,
5472: <double*>norm_dir.data,
+5473: kmin_tab, dist_tab)
__pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_kmin_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 5473, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_dist_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_13.memview)) __PYX_ERR(0, 5473, __pyx_L1_error)
+5474: return np.asarray(kmin_tab).reshape(nlos, ncircles), \
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, ((PyObject *)__pyx_v_kmin_tab)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_kmin_tab)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reshape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ncircles); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_1, __pyx_t_2}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_1, __pyx_t_2}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
+5475: np.asarray(dist_tab).reshape(nlos, ncircles)
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_15 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, ((PyObject *)__pyx_v_dist_tab)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_dist_tab)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_reshape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ncircles); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_14 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_15, __pyx_t_2}; __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_15, __pyx_t_2}; __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_16 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_8, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_8, __pyx_t_2); __pyx_t_15 = 0; __pyx_t_2 = 0; __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_16, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5475, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
5476:
+5477: cdef void comp_dist_los_circle_vec_core(int num_los, int num_cir,
static void __pyx_f_4tofu_4geom_5_GG03_comp_dist_los_circle_vec_core(CYTHON_UNUSED int __pyx_v_num_los, int __pyx_v_num_cir, double *__pyx_v_los_directions, double *__pyx_v_los_origins, double *__pyx_v_circle_radius, double *__pyx_v_circle_z, double *__pyx_v_norm_dir_tab, __Pyx_memviewslice __pyx_v_res_k, __Pyx_memviewslice __pyx_v_res_dist) {
int __pyx_v_i;
int __pyx_v_ind_los;
int __pyx_v_ind_cir;
double *__pyx_v_loc_res;
double *__pyx_v_dirv;
double *__pyx_v_orig;
double __pyx_v_radius;
double __pyx_v_circ_z;
double __pyx_v_norm_dir;
/* … */
/* function exit code */
__pyx_L0:;
}
5478: double* los_directions,
5479: double* los_origins,
5480: double* circle_radius,
5481: double* circle_z,
5482: double* norm_dir_tab,
5483: double[::1] res_k,
5484: double[::1] res_dist) nogil:
5485: """ This function computes the intersection of a Ray (or Line Of Sight)
5486: # and a circle in 3D. It returns `kmin`, the coefficient such that the
5487: # ray of origin O = [ori1, ori2, ori3] and of directional vector
5488: # D = [dir1, dir2, dir3] is closest to the circle of radius `radius`
5489: # and centered `(0, 0, circ_z)` at the point P = O + kmin * D.
5490: # The variable `norm_dir` is the squared norm of the direction of the ray.
5491: # This is the vectorial version, we expect the directions and origins to be:
5492: # dirs = [dir1_los1, dir2_los1, dir3_los1, dir1_los2,...]
5493: # oris = [ori1_los1, ori2_los1, ori3_los1, ori1_los2,...]
5494: # res = [kmin(los1, cir1), kmin(los1, cir2),...]
5495: # ---
5496: # This is the PYTHON function, use only if you need this computation from
5497: # Python, if you need it from Cython, use `dist_los_circle_core`
5498: """
5499: cdef int i, ind_los, ind_cir
5500: cdef double* loc_res
5501: cdef double* dirv
5502: cdef double* orig
5503: cdef double radius, circ_z, norm_dir
+5504: with nogil, parallel():
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_dirv, __pyx_v_loc_res, __pyx_v_orig)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_dirv = ((double *)1);
__pyx_v_loc_res = ((double *)1);
__pyx_v_orig = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+5505: dirv = <double*>malloc(3*sizeof(double))
__pyx_v_dirv = ((double *)malloc((3 * (sizeof(double)))));
+5506: orig = <double*>malloc(3*sizeof(double))
__pyx_v_orig = ((double *)malloc((3 * (sizeof(double)))));
+5507: loc_res = <double*>malloc(2*sizeof(double))
__pyx_v_loc_res = ((double *)malloc((2 * (sizeof(double)))));
+5508: for ind_los in prange(num_los):
__pyx_t_1 = __pyx_v_num_los;
if (1 == 0) abort();
{
__pyx_t_3 = (__pyx_t_1 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_3 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_circ_z) lastprivate(__pyx_v_i) lastprivate(__pyx_v_ind_cir) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_norm_dir) lastprivate(__pyx_v_radius)
#endif /* _OPENMP */
for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_3; __pyx_t_2++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_2);
/* Initialize private variables to invalid values */
__pyx_v_circ_z = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_ind_cir = ((int)0xbad0bad0);
__pyx_v_norm_dir = ((double)__PYX_NAN());
__pyx_v_radius = ((double)__PYX_NAN());
+5509: for i in range(3):
for (__pyx_t_4 = 0; __pyx_t_4 < 3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+5510: dirv[i] = los_directions[ind_los * 3 + i]
(__pyx_v_dirv[__pyx_v_i]) = (__pyx_v_los_directions[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
+5511: orig[i] = los_origins[ind_los * 3 + i]
(__pyx_v_orig[__pyx_v_i]) = (__pyx_v_los_origins[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
}
+5512: norm_dir = norm_dir_tab[ind_los]
__pyx_v_norm_dir = (__pyx_v_norm_dir_tab[__pyx_v_ind_los]);
+5513: if norm_dir < 0.:
__pyx_t_5 = ((__pyx_v_norm_dir < 0.) != 0);
if (__pyx_t_5) {
/* … */
}
+5514: norm_dir = Csqrt(compute_dot_prod(dirv, dirv))
__pyx_v_norm_dir = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_dirv, __pyx_v_dirv));
+5515: for ind_cir in range(num_cir):
__pyx_t_4 = __pyx_v_num_cir;
__pyx_t_6 = __pyx_t_4;
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
__pyx_v_ind_cir = __pyx_t_7;
+5516: radius = circle_radius[ind_cir]
__pyx_v_radius = (__pyx_v_circle_radius[__pyx_v_ind_cir]);
+5517: circ_z = circle_z[ind_cir]
__pyx_v_circ_z = (__pyx_v_circle_z[__pyx_v_ind_cir]);
+5518: dist_los_circle_core(dirv, orig, radius, circ_z,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_dirv, __pyx_v_orig, __pyx_v_radius, __pyx_v_circ_z, __pyx_v_norm_dir, __pyx_v_loc_res);
5519: norm_dir, loc_res)
+5520: res_k[ind_los * num_cir + ind_cir] = loc_res[0]
__pyx_t_8 = ((__pyx_v_ind_los * __pyx_v_num_cir) + __pyx_v_ind_cir);
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_res_k.data) + __pyx_t_8)) )) = (__pyx_v_loc_res[0]);
+5521: res_dist[ind_los * num_cir + ind_cir] = loc_res[1]
__pyx_t_9 = ((__pyx_v_ind_los * __pyx_v_num_cir) + __pyx_v_ind_cir);
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_res_dist.data) + __pyx_t_9)) )) = (__pyx_v_loc_res[1]);
}
}
}
}
}
+5522: free(dirv)
free(__pyx_v_dirv);
+5523: free(orig)
free(__pyx_v_orig);
+5524: free(loc_res)
free(__pyx_v_loc_res);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+5525: return
goto __pyx_L0;
5526:
5527: # ==============================================================================
5528: #
5529: # TEST CLOSENESS CIRCLE - LOS
5530: #
5531: # ==============================================================================
5532:
+5533: def is_close_los_circle(np.ndarray[double,ndim=1,mode='c'] ray_vdir,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_69is_close_los_circle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_68is_close_los_circle[] = "\n This function checks if at maximum a LOS is at a distance epsilon\n form a cirlce\n The result is True when distance < epsilon\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `is_los_close_circle_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_69is_close_los_circle = {"is_close_los_circle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_69is_close_los_circle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_68is_close_los_circle};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_69is_close_los_circle(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyArrayObject *__pyx_v_ray_vdir = 0;
PyArrayObject *__pyx_v_ray_orig = 0;
double __pyx_v_radius;
double __pyx_v_circ_z;
double __pyx_v_eps;
double __pyx_v_norm_dir;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_circle (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ray_vdir,&__pyx_n_s_ray_orig,&__pyx_n_s_radius,&__pyx_n_s_circ_z,&__pyx_n_s_eps,&__pyx_n_s_norm_dir,0};
PyObject* values[6] = {0,0,0,0,0,0};
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle", 0, 5, 6, 1); __PYX_ERR(0, 5533, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle", 0, 5, 6, 2); __PYX_ERR(0, 5533, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_circ_z)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle", 0, 5, 6, 3); __PYX_ERR(0, 5533, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle", 0, 5, 6, 4); __PYX_ERR(0, 5533, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_dir);
if (value) { values[5] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "is_close_los_circle") < 0)) __PYX_ERR(0, 5533, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ray_vdir = ((PyArrayObject *)values[0]);
__pyx_v_ray_orig = ((PyArrayObject *)values[1]);
__pyx_v_radius = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_radius == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5535, __pyx_L3_error)
__pyx_v_circ_z = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_circ_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5535, __pyx_L3_error)
__pyx_v_eps = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_eps == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5535, __pyx_L3_error)
if (values[5]) {
__pyx_v_norm_dir = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_norm_dir == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5536, __pyx_L3_error)
} else {
__pyx_v_norm_dir = ((double)-1.0);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("is_close_los_circle", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5533, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.is_close_los_circle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_vdir), __pyx_ptype_5numpy_ndarray, 1, "ray_vdir", 0))) __PYX_ERR(0, 5533, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_orig), __pyx_ptype_5numpy_ndarray, 1, "ray_orig", 0))) __PYX_ERR(0, 5534, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_68is_close_los_circle(__pyx_self, __pyx_v_ray_vdir, __pyx_v_ray_orig, __pyx_v_radius, __pyx_v_circ_z, __pyx_v_eps, __pyx_v_norm_dir);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_68is_close_los_circle(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_ray_vdir, PyArrayObject *__pyx_v_ray_orig, double __pyx_v_radius, double __pyx_v_circ_z, double __pyx_v_eps, double __pyx_v_norm_dir) {
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_orig;
__Pyx_Buffer __pyx_pybuffer_ray_orig;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_vdir;
__Pyx_Buffer __pyx_pybuffer_ray_vdir;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_circle", 0);
__pyx_pybuffer_ray_vdir.pybuffer.buf = NULL;
__pyx_pybuffer_ray_vdir.refcount = 0;
__pyx_pybuffernd_ray_vdir.data = NULL;
__pyx_pybuffernd_ray_vdir.rcbuffer = &__pyx_pybuffer_ray_vdir;
__pyx_pybuffer_ray_orig.pybuffer.buf = NULL;
__pyx_pybuffer_ray_orig.refcount = 0;
__pyx_pybuffernd_ray_orig.data = NULL;
__pyx_pybuffernd_ray_orig.rcbuffer = &__pyx_pybuffer_ray_orig;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_vdir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5533, __pyx_L1_error)
}
__pyx_pybuffernd_ray_vdir.diminfo[0].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_vdir.diminfo[0].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_orig, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5533, __pyx_L1_error)
}
__pyx_pybuffernd_ray_orig.diminfo[0].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_orig.diminfo[0].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.is_close_los_circle", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__226 = PyTuple_Pack(6, __pyx_n_s_ray_vdir, __pyx_n_s_ray_orig, __pyx_n_s_radius, __pyx_n_s_circ_z, __pyx_n_s_eps, __pyx_n_s_norm_dir); if (unlikely(!__pyx_tuple__226)) __PYX_ERR(0, 5533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__226);
__Pyx_GIVEREF(__pyx_tuple__226);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_69is_close_los_circle, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5533, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_close_los_circle, __pyx_t_2) < 0) __PYX_ERR(0, 5533, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(6, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__226, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_is_close_los_circle, 5533, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(0, 5533, __pyx_L1_error)
5534: np.ndarray[double,ndim=1,mode='c'] ray_orig,
5535: double radius, double circ_z, double eps,
5536: double norm_dir=-1.0):
5537: """
5538: This function checks if at maximum a LOS is at a distance epsilon
5539: form a cirlce
5540: The result is True when distance < epsilon
5541: ---
5542: This is the PYTHON function, use only if you need this computation from
5543: Python, if you need it from Cython, use `is_los_close_circle_core`
5544: """
+5545: return is_close_los_circle_core(<double*>ray_vdir.data,
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_4tofu_4geom_5_GG03_is_close_los_circle_core(((double *)__pyx_v_ray_vdir->data), ((double *)__pyx_v_ray_orig->data), __pyx_v_radius, __pyx_v_circ_z, __pyx_v_norm_dir, __pyx_v_eps)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
5546: <double*>ray_orig.data,
5547: radius, circ_z, norm_dir, eps)
5548:
5549:
+5550: cdef inline bint is_close_los_circle_core(const double[3] direct,
static CYTHON_INLINE int __pyx_f_4tofu_4geom_5_GG03_is_close_los_circle_core(double *__pyx_v_direct, double *__pyx_v_origin, double __pyx_v_radius, double __pyx_v_circ_z, double __pyx_v_norm_dir, double __pyx_v_eps) {
int __pyx_v_numRoots;
int __pyx_v_i;
double __pyx_v_zero;
double __pyx_v_m0sqr;
double __pyx_v_m0;
double __pyx_v_rm0;
double __pyx_v_lambd;
double __pyx_v_m2b2;
double __pyx_v_b1sqr;
double __pyx_v_b1;
double __pyx_v_twoThirds;
double __pyx_v_sHat;
double __pyx_v_gHat;
double __pyx_v_cutoff;
double __pyx_v_s;
double __pyx_v_D[3];
double __pyx_v_MxN[3];
double __pyx_v_DxN[3];
double __pyx_v_NxDelta[3];
double __pyx_v_circle_normal[3];
double __pyx_v_roots[3];
double __pyx_v_diff[3];
double __pyx_v_circle_center[3];
double __pyx_v_circle_closest[3];
double __pyx_v_line_closest[3];
double __pyx_v_direction[3];
double __pyx_v_tmin;
double __pyx_v_distance;
double __pyx_v_inv_norm_dir;
int __pyx_v_are_close;
double __pyx_v_rm0sqr;
double __pyx_v_t;
double __pyx_v_norm_ppar;
int __pyx_r;
/* … */
/* function exit code */
__pyx_L0:;
return __pyx_r;
}
5551: const double[3] origin,
5552: double radius, double circ_z,
5553: double norm_dir, double eps) nogil:
5554: # Source: https://www.geometrictools.com/Documentation/DistanceToCircle3.pdf
5555: # The line is P(t) = B+t*M. The circle is |X-C| = r with Dot(N,X-C)=0.
5556: cdef int numRoots, i
+5557: cdef double zero = 0., m0sqr, m0, rm0
__pyx_v_zero = 0.;
5558: cdef double lambd, m2b2, b1sqr, b1, r0sqr, twoThirds, sHat, gHat, cutoff, s
5559: cdef double[3] D
5560: cdef double[3] MxN
5561: cdef double[3] DxN
5562: cdef double[3] NxDelta
5563: cdef double[3] circle_normal
5564: cdef double[3] roots
5565: cdef double[3] diff
5566: cdef double[3] circle_center
5567: cdef double[3] circle_closest
5568: cdef double[3] line_closest
5569: cdef double[3] direction
5570: cdef double tmin
5571: cdef double distance
5572: cdef double inv_norm_dir
5573: cdef bint are_close
5574:
5575: # .. initialization .....
+5576: if norm_dir < 0:
__pyx_t_1 = ((__pyx_v_norm_dir < 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
+5577: norm_dir = Csqrt(compute_dot_prod(direct, direct))
__pyx_v_norm_dir = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_direct, __pyx_v_direct));
+5578: inv_norm_dir = 1./ norm_dir
__pyx_v_inv_norm_dir = (1. / __pyx_v_norm_dir);
5579: # .. initialization .....
+5580: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5581: circle_center[i] = 0.
(__pyx_v_circle_center[__pyx_v_i]) = 0.;
+5582: circle_normal[i] = 0.
(__pyx_v_circle_normal[__pyx_v_i]) = 0.;
+5583: roots[i] = 0.
(__pyx_v_roots[__pyx_v_i]) = 0.;
5584: # we normalize direction
+5585: direction[i] = direct[i] * inv_norm_dir
(__pyx_v_direction[__pyx_v_i]) = ((__pyx_v_direct[__pyx_v_i]) * __pyx_v_inv_norm_dir); }
+5586: circle_normal[2] = 1
(__pyx_v_circle_normal[2]) = 1.0;
+5587: circle_center[2] = circ_z
(__pyx_v_circle_center[2]) = __pyx_v_circ_z;
5588:
+5589: D[0] = origin[0]
(__pyx_v_D[0]) = (__pyx_v_origin[0]);
+5590: D[1] = origin[1]
(__pyx_v_D[1]) = (__pyx_v_origin[1]);
+5591: D[2] = origin[2] - circ_z
(__pyx_v_D[2]) = ((__pyx_v_origin[2]) - __pyx_v_circ_z);
+5592: compute_cross_prod(direction, circle_normal, MxN)
__pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(__pyx_v_direction, __pyx_v_circle_normal, __pyx_v_MxN);
+5593: compute_cross_prod(D, circle_normal, DxN)
__pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(__pyx_v_D, __pyx_v_circle_normal, __pyx_v_DxN);
+5594: m0sqr = compute_dot_prod(MxN, MxN)
__pyx_v_m0sqr = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_MxN, __pyx_v_MxN);
5595:
+5596: if (m0sqr > zero):
__pyx_t_1 = ((__pyx_v_m0sqr > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
}
5597: # Compute the critical points s for F'(s) = 0.
+5598: numRoots = 0
__pyx_v_numRoots = 0;
5599: # The line direction M and the plane normal N are not parallel. Move
5600: # the line origin B = (b0,b1,b2) to B' = B + lambd*direction =
5601: # (0,b1',b2').
+5602: m0 = Csqrt(m0sqr)
__pyx_v_m0 = sqrt(__pyx_v_m0sqr);
+5603: rm0 = radius * m0
__pyx_v_rm0 = (__pyx_v_radius * __pyx_v_m0);
+5604: lambd = -compute_dot_prod(MxN, DxN) / m0sqr
__pyx_v_lambd = ((-__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_MxN, __pyx_v_DxN)) / __pyx_v_m0sqr);
+5605: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5606: D[i] += lambd * direction[i]
__pyx_t_3 = __pyx_v_i;
(__pyx_v_D[__pyx_t_3]) = ((__pyx_v_D[__pyx_t_3]) + (__pyx_v_lambd * (__pyx_v_direction[__pyx_v_i])));
+5607: DxN[i] += lambd * MxN[i]
__pyx_t_3 = __pyx_v_i;
(__pyx_v_DxN[__pyx_t_3]) = ((__pyx_v_DxN[__pyx_t_3]) + (__pyx_v_lambd * (__pyx_v_MxN[__pyx_v_i])));
}
+5608: m2b2 = compute_dot_prod(direction, D)
__pyx_v_m2b2 = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_direction, __pyx_v_D);
+5609: b1sqr = compute_dot_prod(DxN, DxN)
__pyx_v_b1sqr = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_DxN, __pyx_v_DxN);
+5610: if (b1sqr > zero) :
__pyx_t_1 = ((__pyx_v_b1sqr > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L9;
}
5611: # B' = (0,b1',b2') where b1' != 0. See Sections 1.1.2 and 1.2.2
5612: # of the PDF documentation.
+5613: b1 = Csqrt(b1sqr)
__pyx_v_b1 = sqrt(__pyx_v_b1sqr);
+5614: rm0sqr = radius * m0sqr
__pyx_v_rm0sqr = (__pyx_v_radius * __pyx_v_m0sqr);
+5615: if (rm0sqr > b1):
__pyx_t_1 = ((__pyx_v_rm0sqr > __pyx_v_b1) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L10;
}
+5616: twoThirds = 2.0 / 3.0
__pyx_v_twoThirds = (2.0 / 3.0);
+5617: sHat = Csqrt((rm0sqr * b1sqr)**twoThirds - b1sqr) / m0
__pyx_v_sHat = (sqrt((pow((__pyx_v_rm0sqr * __pyx_v_b1sqr), __pyx_v_twoThirds) - __pyx_v_b1sqr)) / __pyx_v_m0);
+5618: gHat = rm0sqr * sHat / Csqrt(m0sqr * sHat * sHat + b1sqr)
__pyx_v_gHat = ((__pyx_v_rm0sqr * __pyx_v_sHat) / sqrt((((__pyx_v_m0sqr * __pyx_v_sHat) * __pyx_v_sHat) + __pyx_v_b1sqr)));
+5619: cutoff = gHat - sHat
__pyx_v_cutoff = (__pyx_v_gHat - __pyx_v_sHat);
+5620: if (m2b2 <= -cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 <= (-__pyx_v_cutoff)) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L11;
}
+5621: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2, -m2b2 + rm0)
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, (-__pyx_v_m2b2), ((-__pyx_v_m2b2) + __pyx_v_rm0));
+5622: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5623: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5624: if (m2b2 == -cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 == (-__pyx_v_cutoff)) != 0);
if (__pyx_t_1) {
/* … */
}
+5625: roots[numRoots] = -sHat
(__pyx_v_roots[__pyx_v_numRoots]) = (-__pyx_v_sHat);
+5626: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5627: elif (m2b2 >= cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 >= __pyx_v_cutoff) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L11;
}
+5628: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_m2b2));
5629: -m2b2)
+5630: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5631: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5632: if (m2b2 == cutoff):
__pyx_t_1 = ((__pyx_v_m2b2 == __pyx_v_cutoff) != 0);
if (__pyx_t_1) {
/* … */
}
+5633: roots[numRoots] = sHat
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_sHat;
+5634: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5635: else:
+5636: if (m2b2 <= zero):
/*else*/ {
__pyx_t_1 = ((__pyx_v_m2b2 <= __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L14;
}
+5637: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, (-__pyx_v_m2b2), ((-__pyx_v_m2b2) + __pyx_v_rm0));
5638: -m2b2 + rm0)
+5639: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5640: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5641: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_sHat));
5642: -sHat)
+5643: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5644: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5645: else:
+5646: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
/*else*/ {
/* … */
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_m2b2));
5647: -m2b2)
+5648: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5649: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5650: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, sHat,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, __pyx_v_sHat, ((-__pyx_v_m2b2) + __pyx_v_rm0));
5651: -m2b2 + rm0)
+5652: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5653: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
}
__pyx_L14:;
}
__pyx_L11:;
5654: else:
+5655: if (m2b2 < zero):
/*else*/ {
__pyx_t_1 = ((__pyx_v_m2b2 < __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+5656: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, (-__pyx_v_m2b2), ((-__pyx_v_m2b2) + __pyx_v_rm0));
5657: -m2b2 + rm0)
+5658: elif (m2b2 > zero):
__pyx_t_1 = ((__pyx_v_m2b2 > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L15;
}
+5659: s = compute_bisect(m2b2, rm0sqr, m0sqr, b1sqr, -m2b2 - rm0,
__pyx_v_s = __pyx_f_4tofu_4geom_5_GG03_compute_bisect(__pyx_v_m2b2, __pyx_v_rm0sqr, __pyx_v_m0sqr, __pyx_v_b1sqr, ((-__pyx_v_m2b2) - __pyx_v_rm0), (-__pyx_v_m2b2));
5660: -m2b2)
5661: else:
+5662: s = zero
/*else*/ {
__pyx_v_s = __pyx_v_zero;
}
__pyx_L15:;
+5663: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5664: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
}
__pyx_L10:;
5665: else:
5666: # The new line origin is B' = (0,0,b2').
+5667: if (m2b2 < zero):
/*else*/ {
__pyx_t_1 = ((__pyx_v_m2b2 < __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L16;
}
+5668: s = -m2b2 + rm0
__pyx_v_s = ((-__pyx_v_m2b2) + __pyx_v_rm0);
+5669: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5670: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5671: elif (m2b2 > zero):
__pyx_t_1 = ((__pyx_v_m2b2 > __pyx_v_zero) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L16;
}
+5672: s = -m2b2 - rm0
__pyx_v_s = ((-__pyx_v_m2b2) - __pyx_v_rm0);
+5673: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5674: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
5675: else:
+5676: s = -m2b2 + rm0
/*else*/ {
__pyx_v_s = ((-__pyx_v_m2b2) + __pyx_v_rm0);
+5677: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5678: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
+5679: s = -m2b2 - rm0
__pyx_v_s = ((-__pyx_v_m2b2) - __pyx_v_rm0);
+5680: roots[numRoots] = s
(__pyx_v_roots[__pyx_v_numRoots]) = __pyx_v_s;
+5681: numRoots += 1
__pyx_v_numRoots = (__pyx_v_numRoots + 1);
}
__pyx_L16:;
}
__pyx_L9:;
5682: # Checking which one is the closest solution............................
+5683: tmin = roots[0] + lambd
__pyx_v_tmin = ((__pyx_v_roots[0]) + __pyx_v_lambd);
+5684: for i in range(1,numRoots):
__pyx_t_2 = __pyx_v_numRoots;
__pyx_t_3 = __pyx_t_2;
for (__pyx_t_4 = 1; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+5685: t = roots[i] + lambd
__pyx_v_t = ((__pyx_v_roots[__pyx_v_i]) + __pyx_v_lambd);
+5686: if (t>0 and t<tmin):
__pyx_t_5 = ((__pyx_v_t > 0.0) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_5 = ((__pyx_v_t < __pyx_v_tmin) != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L20_bool_binop_done:;
if (__pyx_t_1) {
/* … */
}
}
+5687: tmin = t
__pyx_v_tmin = __pyx_v_t;
+5688: if tmin < 0:
__pyx_t_1 = ((__pyx_v_tmin < 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
+5689: tmin = 0.
__pyx_v_tmin = 0.;
5690: # Now that we know the closest point on the line we can compute the
5691: # closest point on the circle and compute the distance
+5692: line_closest[0] = origin[0] + tmin * direction[0]
(__pyx_v_line_closest[0]) = ((__pyx_v_origin[0]) + (__pyx_v_tmin * (__pyx_v_direction[0])));
+5693: line_closest[1] = origin[1] + tmin * direction[1]
(__pyx_v_line_closest[1]) = ((__pyx_v_origin[1]) + (__pyx_v_tmin * (__pyx_v_direction[1])));
+5694: line_closest[2] = origin[2] + tmin * direction[2]
(__pyx_v_line_closest[2]) = ((__pyx_v_origin[2]) + (__pyx_v_tmin * (__pyx_v_direction[2])));
+5695: compute_cross_prod(circle_normal, line_closest, NxDelta)
__pyx_f_4tofu_4geom_5_GG03_compute_cross_prod(__pyx_v_circle_normal, __pyx_v_line_closest, __pyx_v_NxDelta);
+5696: if not (Cabs(NxDelta[0]) <= _VSMALL
__pyx_t_5 = ((fabs((__pyx_v_NxDelta[0])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
/* … */
__pyx_t_5 = ((!__pyx_t_1) != 0);
if (__pyx_t_5) {
/* … */
}
+5697: and Cabs(NxDelta[1]) <= _VSMALL
__pyx_t_5 = ((fabs((__pyx_v_NxDelta[1])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_1 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
+5698: and Cabs(NxDelta[2]) <= _VSMALL):
__pyx_t_5 = ((fabs((__pyx_v_NxDelta[2])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
__pyx_t_1 = __pyx_t_5;
__pyx_L24_bool_binop_done:;
+5699: norm_ppar = Csqrt(line_closest[0]*line_closest[0]
__pyx_v_norm_ppar = sqrt((((__pyx_v_line_closest[0]) * (__pyx_v_line_closest[0])) + ((__pyx_v_line_closest[1]) * (__pyx_v_line_closest[1]))));
5700: + line_closest[1]*line_closest[1])
+5701: circle_closest[0] = radius * line_closest[0] / norm_ppar
(__pyx_v_circle_closest[0]) = ((__pyx_v_radius * (__pyx_v_line_closest[0])) / __pyx_v_norm_ppar);
+5702: circle_closest[1] = radius * line_closest[1] / norm_ppar
(__pyx_v_circle_closest[1]) = ((__pyx_v_radius * (__pyx_v_line_closest[1])) / __pyx_v_norm_ppar);
+5703: circle_closest[2] = circle_center[2]
(__pyx_v_circle_closest[2]) = (__pyx_v_circle_center[2]);
+5704: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5705: diff[i] = line_closest[i] - circle_closest[i]
(__pyx_v_diff[__pyx_v_i]) = ((__pyx_v_line_closest[__pyx_v_i]) - (__pyx_v_circle_closest[__pyx_v_i]));
}
+5706: distance = Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff));
+5707: are_close = distance < eps
__pyx_v_are_close = (__pyx_v_distance < __pyx_v_eps);
+5708: return are_close
__pyx_r = __pyx_v_are_close;
goto __pyx_L0;
5709: else:
+5710: diff[0] = line_closest[0] + radius
/*else*/ {
(__pyx_v_diff[0]) = ((__pyx_v_line_closest[0]) + __pyx_v_radius);
+5711: diff[1] = line_closest[1]
(__pyx_v_diff[1]) = (__pyx_v_line_closest[1]);
+5712: diff[2] = line_closest[2] - circle_center[2]
(__pyx_v_diff[2]) = ((__pyx_v_line_closest[2]) - (__pyx_v_circle_center[2]));
+5713: distance = Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff));
+5714: are_close = distance < eps
__pyx_v_are_close = (__pyx_v_distance < __pyx_v_eps);
+5715: return are_close
__pyx_r = __pyx_v_are_close;
goto __pyx_L0;
}
5716: else:
5717: # The line direction and the plane normal are parallel.
5718: # There is only one solution the intersection between line and plane
+5719: if not (Cabs(DxN[0]) <= _VSMALL
/*else*/ {
/* … */
__pyx_t_1 = ((fabs((__pyx_v_DxN[0])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_1) {
} else {
__pyx_t_5 = __pyx_t_1;
goto __pyx_L30_bool_binop_done;
}
/* … */
__pyx_t_1 = ((!__pyx_t_5) != 0);
if (__pyx_t_1) {
/* … */
}
+5720: and Cabs(DxN[1]) <= _VSMALL
__pyx_t_1 = ((fabs((__pyx_v_DxN[1])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_1) {
} else {
__pyx_t_5 = __pyx_t_1;
goto __pyx_L30_bool_binop_done;
}
+5721: and Cabs(DxN[2]) <= _VSMALL):
__pyx_t_1 = ((fabs((__pyx_v_DxN[2])) <= __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
__pyx_t_5 = __pyx_t_1;
__pyx_L30_bool_binop_done:;
5722: # The line is A+t*N but with A != C.
+5723: t = -compute_dot_prod(direction, D)
__pyx_v_t = (-__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_direction, __pyx_v_D));
5724: # We compute line closest
+5725: line_closest[0] = origin[0] + t * direction[0]
(__pyx_v_line_closest[0]) = ((__pyx_v_origin[0]) + (__pyx_v_t * (__pyx_v_direction[0])));
+5726: line_closest[1] = origin[1] + t * direction[1]
(__pyx_v_line_closest[1]) = ((__pyx_v_origin[1]) + (__pyx_v_t * (__pyx_v_direction[1])));
+5727: line_closest[2] = origin[2] + t * direction[2]
(__pyx_v_line_closest[2]) = ((__pyx_v_origin[2]) + (__pyx_v_t * (__pyx_v_direction[2])));
5728: # We compute cirlce closest
+5729: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5730: diff[i] = line_closest[i] - circle_center[i]
(__pyx_v_diff[__pyx_v_i]) = ((__pyx_v_line_closest[__pyx_v_i]) - (__pyx_v_circle_center[__pyx_v_i]));
}
+5731: distance = radius / Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = (__pyx_v_radius / sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff)));
+5732: circle_closest[0] = line_closest[0] * distance
(__pyx_v_circle_closest[0]) = ((__pyx_v_line_closest[0]) * __pyx_v_distance);
+5733: circle_closest[1] = line_closest[1] * distance
(__pyx_v_circle_closest[1]) = ((__pyx_v_line_closest[1]) * __pyx_v_distance);
+5734: circle_closest[2] = circ_z + (line_closest[2] - circ_z) * distance
(__pyx_v_circle_closest[2]) = (__pyx_v_circ_z + (((__pyx_v_line_closest[2]) - __pyx_v_circ_z) * __pyx_v_distance));
+5735: if t < 0:
__pyx_t_1 = ((__pyx_v_t < 0.0) != 0);
if (__pyx_t_1) {
/* … */
}
5736: # fi t is negative, we take origin as closest point
+5737: line_closest[0] = origin[0]
(__pyx_v_line_closest[0]) = (__pyx_v_origin[0]);
+5738: line_closest[1] = origin[1]
(__pyx_v_line_closest[1]) = (__pyx_v_origin[1]);
+5739: line_closest[2] = origin[2]
(__pyx_v_line_closest[2]) = (__pyx_v_origin[2]);
+5740: for i in range(3):
for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
__pyx_v_i = __pyx_t_2;
+5741: diff[i] = line_closest[i] - circle_closest[i]
(__pyx_v_diff[__pyx_v_i]) = ((__pyx_v_line_closest[__pyx_v_i]) - (__pyx_v_circle_closest[__pyx_v_i]));
}
+5742: distance = Csqrt(compute_dot_prod(diff, diff))
__pyx_v_distance = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_diff, __pyx_v_diff));
+5743: are_close = distance < eps
__pyx_v_are_close = (__pyx_v_distance < __pyx_v_eps);
+5744: return are_close
__pyx_r = __pyx_v_are_close;
goto __pyx_L0;
5745: else:
5746: # The line direction and the normal vector are on the same line
5747: # so C is the closest point for the circle and the distance is
5748: # the radius unless the ray's origin is after the circle center
+5749: if (origin[2] * direction[2] <= circle_center[2] * direction[2]) :
/*else*/ {
__pyx_t_1 = ((((__pyx_v_origin[2]) * (__pyx_v_direction[2])) <= ((__pyx_v_circle_center[2]) * (__pyx_v_direction[2]))) != 0);
if (__pyx_t_1) {
/* … */
}
+5750: are_close = radius < eps
__pyx_v_are_close = (__pyx_v_radius < __pyx_v_eps);
+5751: return are_close
__pyx_r = __pyx_v_are_close;
goto __pyx_L0;
5752: else:
+5753: t = Cabs(circle_center[2] - origin[2])
/*else*/ {
__pyx_v_t = fabs(((__pyx_v_circle_center[2]) - (__pyx_v_origin[2])));
+5754: are_close = Csqrt(radius*radius + t*t) < eps
__pyx_v_are_close = (sqrt(((__pyx_v_radius * __pyx_v_radius) + (__pyx_v_t * __pyx_v_t))) < __pyx_v_eps);
+5755: return are_close
__pyx_r = __pyx_v_are_close;
goto __pyx_L0;
}
}
}
5756:
5757:
+5758: def is_close_los_circle_vec(int nlos, int ncircles, double epsilon,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_71is_close_los_circle_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_70is_close_los_circle_vec[] = "\n This function checks if at maximum a LOS is at a distance epsilon\n form a cirlce. Vectorial version\n The result is True when distance < epsilon\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `is_los_close_circle_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_71is_close_los_circle_vec = {"is_close_los_circle_vec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_71is_close_los_circle_vec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_70is_close_los_circle_vec};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_71is_close_los_circle_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_nlos;
int __pyx_v_ncircles;
double __pyx_v_epsilon;
PyArrayObject *__pyx_v_dirs = 0;
PyArrayObject *__pyx_v_oris = 0;
PyArrayObject *__pyx_v_circle_radius = 0;
PyArrayObject *__pyx_v_circle_z = 0;
PyArrayObject *__pyx_v_norm_dir = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_circle_vec (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nlos,&__pyx_n_s_ncircles,&__pyx_n_s_epsilon,&__pyx_n_s_dirs,&__pyx_n_s_oris,&__pyx_n_s_circle_radius,&__pyx_n_s_circle_z,&__pyx_n_s_norm_dir,0};
PyObject* values[8] = {0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_70is_close_los_circle_vec(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nlos, int __pyx_v_ncircles, double __pyx_v_epsilon, PyArrayObject *__pyx_v_dirs, PyArrayObject *__pyx_v_oris, PyArrayObject *__pyx_v_circle_radius, PyArrayObject *__pyx_v_circle_z, PyArrayObject *__pyx_v_norm_dir) {
arrayobject *__pyx_v_res = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_circle_radius;
__Pyx_Buffer __pyx_pybuffer_circle_radius;
__Pyx_LocalBuf_ND __pyx_pybuffernd_circle_z;
__Pyx_Buffer __pyx_pybuffer_circle_z;
__Pyx_LocalBuf_ND __pyx_pybuffernd_dirs;
__Pyx_Buffer __pyx_pybuffer_dirs;
__Pyx_LocalBuf_ND __pyx_pybuffernd_norm_dir;
__Pyx_Buffer __pyx_pybuffer_norm_dir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_oris;
__Pyx_Buffer __pyx_pybuffer_oris;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_circle_vec", 0);
__Pyx_INCREF((PyObject *)__pyx_v_norm_dir);
__pyx_pybuffer_dirs.pybuffer.buf = NULL;
__pyx_pybuffer_dirs.refcount = 0;
__pyx_pybuffernd_dirs.data = NULL;
__pyx_pybuffernd_dirs.rcbuffer = &__pyx_pybuffer_dirs;
__pyx_pybuffer_oris.pybuffer.buf = NULL;
__pyx_pybuffer_oris.refcount = 0;
__pyx_pybuffernd_oris.data = NULL;
__pyx_pybuffernd_oris.rcbuffer = &__pyx_pybuffer_oris;
__pyx_pybuffer_circle_radius.pybuffer.buf = NULL;
__pyx_pybuffer_circle_radius.refcount = 0;
__pyx_pybuffernd_circle_radius.data = NULL;
__pyx_pybuffernd_circle_radius.rcbuffer = &__pyx_pybuffer_circle_radius;
__pyx_pybuffer_circle_z.pybuffer.buf = NULL;
__pyx_pybuffer_circle_z.refcount = 0;
__pyx_pybuffernd_circle_z.data = NULL;
__pyx_pybuffernd_circle_z.rcbuffer = &__pyx_pybuffer_circle_z;
__pyx_pybuffer_norm_dir.pybuffer.buf = NULL;
__pyx_pybuffer_norm_dir.refcount = 0;
__pyx_pybuffernd_norm_dir.data = NULL;
__pyx_pybuffernd_norm_dir.rcbuffer = &__pyx_pybuffer_norm_dir;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_dirs.rcbuffer->pybuffer, (PyObject*)__pyx_v_dirs, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5758, __pyx_L1_error)
}
__pyx_pybuffernd_dirs.diminfo[0].strides = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_dirs.diminfo[0].shape = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_dirs.diminfo[1].strides = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_dirs.diminfo[1].shape = __pyx_pybuffernd_dirs.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_oris.rcbuffer->pybuffer, (PyObject*)__pyx_v_oris, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5758, __pyx_L1_error)
}
__pyx_pybuffernd_oris.diminfo[0].strides = __pyx_pybuffernd_oris.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_oris.diminfo[0].shape = __pyx_pybuffernd_oris.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_oris.diminfo[1].strides = __pyx_pybuffernd_oris.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_oris.diminfo[1].shape = __pyx_pybuffernd_oris.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_circle_radius.rcbuffer->pybuffer, (PyObject*)__pyx_v_circle_radius, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5758, __pyx_L1_error)
}
__pyx_pybuffernd_circle_radius.diminfo[0].strides = __pyx_pybuffernd_circle_radius.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_circle_radius.diminfo[0].shape = __pyx_pybuffernd_circle_radius.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_circle_z.rcbuffer->pybuffer, (PyObject*)__pyx_v_circle_z, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5758, __pyx_L1_error)
}
__pyx_pybuffernd_circle_z.diminfo[0].strides = __pyx_pybuffernd_circle_z.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_circle_z.diminfo[0].shape = __pyx_pybuffernd_circle_z.rcbuffer->pybuffer.shape[0];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer, (PyObject*)__pyx_v_norm_dir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5758, __pyx_L1_error)
}
__pyx_pybuffernd_norm_dir.diminfo[0].strides = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_norm_dir.diminfo[0].shape = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.shape[0];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_XDECREF(__pyx_t_13);
__Pyx_XDECREF(__pyx_t_14);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_radius.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_z.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dirs.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_oris.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.is_close_los_circle_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_radius.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_circle_z.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_dirs.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_oris.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF((PyObject *)__pyx_v_res);
__Pyx_XDECREF((PyObject *)__pyx_v_norm_dir);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__228 = PyTuple_Pack(9, __pyx_n_s_nlos, __pyx_n_s_ncircles, __pyx_n_s_epsilon, __pyx_n_s_dirs, __pyx_n_s_oris, __pyx_n_s_circle_radius, __pyx_n_s_circle_z, __pyx_n_s_norm_dir, __pyx_n_s_res); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__228);
__Pyx_GIVEREF(__pyx_tuple__228);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_71is_close_los_circle_vec, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_close_los_circle_vec, __pyx_t_2) < 0) __PYX_ERR(0, 5758, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(8, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_is_close_los_circle_vec, 5758, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(0, 5758, __pyx_L1_error)
5759: np.ndarray[double,ndim=2,mode='c'] dirs,
5760: np.ndarray[double,ndim=2,mode='c'] oris,
5761: np.ndarray[double,ndim=1,mode='c'] circle_radius,
5762: np.ndarray[double,ndim=1,mode='c'] circle_z,
+5763: np.ndarray[double,ndim=1,mode='c'] norm_dir=None):
values[7] = (PyObject *)((PyArrayObject *)Py_None);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlos)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ncircles)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, 1); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, 2); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dirs)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, 3); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_oris)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, 4); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_circle_radius)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, 5); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_circle_z)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, 6); __PYX_ERR(0, 5758, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_dir);
if (value) { values[7] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "is_close_los_circle_vec") < 0)) __PYX_ERR(0, 5758, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_nlos = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nlos == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5758, __pyx_L3_error)
__pyx_v_ncircles = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_ncircles == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5758, __pyx_L3_error)
__pyx_v_epsilon = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_epsilon == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5758, __pyx_L3_error)
__pyx_v_dirs = ((PyArrayObject *)values[3]);
__pyx_v_oris = ((PyArrayObject *)values[4]);
__pyx_v_circle_radius = ((PyArrayObject *)values[5]);
__pyx_v_circle_z = ((PyArrayObject *)values[6]);
__pyx_v_norm_dir = ((PyArrayObject *)values[7]);
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("is_close_los_circle_vec", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5758, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.is_close_los_circle_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dirs), __pyx_ptype_5numpy_ndarray, 1, "dirs", 0))) __PYX_ERR(0, 5759, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_oris), __pyx_ptype_5numpy_ndarray, 1, "oris", 0))) __PYX_ERR(0, 5760, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_circle_radius), __pyx_ptype_5numpy_ndarray, 1, "circle_radius", 0))) __PYX_ERR(0, 5761, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_circle_z), __pyx_ptype_5numpy_ndarray, 1, "circle_z", 0))) __PYX_ERR(0, 5762, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_norm_dir), __pyx_ptype_5numpy_ndarray, 1, "norm_dir", 0))) __PYX_ERR(0, 5763, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_70is_close_los_circle_vec(__pyx_self, __pyx_v_nlos, __pyx_v_ncircles, __pyx_v_epsilon, __pyx_v_dirs, __pyx_v_oris, __pyx_v_circle_radius, __pyx_v_circle_z, __pyx_v_norm_dir);
5764: """
5765: This function checks if at maximum a LOS is at a distance epsilon
5766: form a cirlce. Vectorial version
5767: The result is True when distance < epsilon
5768: ---
5769: This is the PYTHON function, use only if you need this computation from
5770: Python, if you need it from Cython, use `is_los_close_circle_core`
5771: """
+5772: cdef array res = clone(array('i'), nlos, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), __pyx_v_nlos, 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_res = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
5773:
+5774: if norm_dir is None:
__pyx_t_3 = (((PyObject *)__pyx_v_norm_dir) == Py_None);
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
/* … */
}
+5775: norm_dir = -np.ones(nlos)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Negative(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5775, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 5775, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer); __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack); if (unlikely(__pyx_t_8 < 0)) { PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_norm_dir.rcbuffer->pybuffer, (PyObject*)__pyx_v_norm_dir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 1, 0, __pyx_stack) == -1)) { Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11); __Pyx_RaiseBufferFallbackError(); } else { PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11); } __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0; } __pyx_pybuffernd_norm_dir.diminfo[0].strides = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_norm_dir.diminfo[0].shape = __pyx_pybuffernd_norm_dir.rcbuffer->pybuffer.shape[0]; if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 5775, __pyx_L1_error) } __pyx_t_7 = 0; __Pyx_DECREF_SET(__pyx_v_norm_dir, ((PyArrayObject *)__pyx_t_5)); __pyx_t_5 = 0;
+5776: is_close_los_circle_vec_core(nlos, ncircles,
__pyx_f_4tofu_4geom_5_GG03_is_close_los_circle_vec_core(__pyx_v_nlos, __pyx_v_ncircles, __pyx_v_epsilon, ((double *)__pyx_v_dirs->data), ((double *)__pyx_v_oris->data), ((double *)__pyx_v_circle_radius->data), ((double *)__pyx_v_circle_z->data), ((double *)__pyx_v_norm_dir->data), __pyx_t_12); __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1); __pyx_t_12.memview = NULL; __pyx_t_12.data = NULL;
5777: epsilon,
5778: <double*>dirs.data,
5779: <double*>oris.data,
5780: <double*>circle_radius.data,
5781: <double*>circle_z.data,
5782: <double*>norm_dir.data,
+5783: res)
__pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_res), PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 5783, __pyx_L1_error)
+5784: return np.asarray(res, dtype=bool).reshape(nlos, ncircles)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_res)); __Pyx_GIVEREF(((PyObject *)__pyx_v_res)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_res)); __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 5784, __pyx_L1_error) __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_reshape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_13); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ncircles); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; __pyx_t_8 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); __pyx_t_8 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_13, __pyx_t_2}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_13, __pyx_t_2}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_14 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_1) { __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __pyx_t_1 = NULL; } __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_2); __pyx_t_13 = 0; __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5784, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_5; __pyx_t_5 = 0; goto __pyx_L0;
5785:
5786:
+5787: cdef void is_close_los_circle_vec_core(int num_los, int num_cir,
static void __pyx_f_4tofu_4geom_5_GG03_is_close_los_circle_vec_core(CYTHON_UNUSED int __pyx_v_num_los, int __pyx_v_num_cir, double __pyx_v_eps, double *__pyx_v_los_directions, double *__pyx_v_los_origins, double *__pyx_v_circle_radius, double *__pyx_v_circle_z, double *__pyx_v_norm_dir_tab, __Pyx_memviewslice __pyx_v_res) {
int __pyx_v_i;
int __pyx_v_ind_los;
int __pyx_v_ind_cir;
double *__pyx_v_dirv;
double *__pyx_v_orig;
double __pyx_v_radius;
double __pyx_v_circ_z;
double __pyx_v_norm_dir;
/* … */
/* function exit code */
__pyx_L0:;
}
5788: double eps,
5789: double* los_directions,
5790: double* los_origins,
5791: double* circle_radius,
5792: double* circle_z,
5793: double* norm_dir_tab,
5794: int[::1] res) nogil:
5795: """
5796: This function computes the intersection of a Ray (or Line Of Sight)
5797: and a circle in 3D. It returns `kmin`, the coefficient such that the
5798: ray of origin O = [ori1, ori2, ori3] and of directional vector
5799: D = [dir1, dir2, dir3] is closest to the circle of radius `radius`
5800: and centered `(0, 0, circ_z)` at the point P = O + kmin * D.
5801: The variable `norm_dir` is the squared norm of the direction of the ray.
5802: This is the vectorial version, we expect the directions and origins to be:
5803: dirs = [dir1_los1, dir2_los1, dir3_los1, dir1_los2,...]
5804: oris = [ori1_los1, ori2_los1, ori3_los1, ori1_los2,...]
5805: res = [kmin(los1, cir1), kmin(los1, cir2),...]
5806: ---
5807: This is the PYTHON function, use only if you need this computation from
5808: Python, if you need it from Cython, use `dist_los_circle_core`
5809: """
5810: cdef int i, ind_los, ind_cir
5811: cdef double* dirv
5812: cdef double* orig
5813: cdef double radius, circ_z, norm_dir
+5814: with nogil, parallel():
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_dirv, __pyx_v_orig)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_dirv = ((double *)1);
__pyx_v_orig = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
+5815: dirv = <double*>malloc(3*sizeof(double))
__pyx_v_dirv = ((double *)malloc((3 * (sizeof(double)))));
+5816: orig = <double*>malloc(3*sizeof(double))
__pyx_v_orig = ((double *)malloc((3 * (sizeof(double)))));
+5817: for ind_los in prange(num_los):
__pyx_t_1 = __pyx_v_num_los;
if (1 == 0) abort();
{
__pyx_t_3 = (__pyx_t_1 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_3 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_circ_z) lastprivate(__pyx_v_i) lastprivate(__pyx_v_ind_cir) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_norm_dir) lastprivate(__pyx_v_radius)
#endif /* _OPENMP */
for (__pyx_t_2 = 0; __pyx_t_2 < __pyx_t_3; __pyx_t_2++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_2);
/* Initialize private variables to invalid values */
__pyx_v_circ_z = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_ind_cir = ((int)0xbad0bad0);
__pyx_v_norm_dir = ((double)__PYX_NAN());
__pyx_v_radius = ((double)__PYX_NAN());
+5818: for i in range(3):
for (__pyx_t_4 = 0; __pyx_t_4 < 3; __pyx_t_4+=1) {
__pyx_v_i = __pyx_t_4;
+5819: dirv[i] = los_directions[ind_los * 3 + i]
(__pyx_v_dirv[__pyx_v_i]) = (__pyx_v_los_directions[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
+5820: orig[i] = los_origins[ind_los * 3 + i]
(__pyx_v_orig[__pyx_v_i]) = (__pyx_v_los_origins[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
}
+5821: norm_dir = norm_dir_tab[ind_los]
__pyx_v_norm_dir = (__pyx_v_norm_dir_tab[__pyx_v_ind_los]);
+5822: if norm_dir < 0.:
__pyx_t_5 = ((__pyx_v_norm_dir < 0.) != 0);
if (__pyx_t_5) {
/* … */
}
+5823: norm_dir = Csqrt(compute_dot_prod(dirv, dirv))
__pyx_v_norm_dir = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_dirv, __pyx_v_dirv));
+5824: for ind_cir in range(num_cir):
__pyx_t_4 = __pyx_v_num_cir;
__pyx_t_6 = __pyx_t_4;
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
__pyx_v_ind_cir = __pyx_t_7;
+5825: radius = circle_radius[ind_cir]
__pyx_v_radius = (__pyx_v_circle_radius[__pyx_v_ind_cir]);
+5826: circ_z = circle_z[ind_cir]
__pyx_v_circ_z = (__pyx_v_circle_z[__pyx_v_ind_cir]);
5827: res[ind_los * num_cir
+5828: + ind_cir] = is_close_los_circle_core(dirv, orig, radius,
__pyx_t_8 = ((__pyx_v_ind_los * __pyx_v_num_cir) + __pyx_v_ind_cir);
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_res.data) + __pyx_t_8)) )) = __pyx_f_4tofu_4geom_5_GG03_is_close_los_circle_core(__pyx_v_dirv, __pyx_v_orig, __pyx_v_radius, __pyx_v_circ_z, __pyx_v_norm_dir, __pyx_v_eps);
}
}
}
}
}
5829: circ_z, norm_dir, eps)
+5830: free(dirv)
free(__pyx_v_dirv);
+5831: free(orig)
free(__pyx_v_orig);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+5832: return
goto __pyx_L0;
5833:
5834: # ==============================================================================
5835: #
5836: # DISTANCE BETWEEN LOS AND EXT-POLY
5837: #
5838: # ==============================================================================
5839:
+5840: def comp_dist_los_vpoly(double[:, ::1] ray_orig,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_73comp_dist_los_vpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_72comp_dist_los_vpoly[] = "\n This function computes the distance (and the associated k) between num_los\n Rays (or LOS) and an `IN` structure (a polygon extruded around the axis\n (0,0,1), eg. a flux surface).\n For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO\n\n Params\n ======\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS normalized direction vector\n ves_poly : (2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the Vessel\n eps_<val> : double\n Small value, acceptance of error\n Returns\n =======\n kmin_vpoly : (num_los) double array\n Of the form [k_0, k_1, ..., k_n], where k_i is the coefficient\n such that the i-th ray (LOS) is closest to the extruded polygon\n at the point P_i = orig[i] + kmin[i] * vdir[i]\n dist_vpoly : (num_los) double array\n `distance[i]` is the distance from P_i to the extruded polygon.\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `simple_dist_los_vpoly_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_73comp_dist_los_vpoly = {"comp_dist_los_vpoly", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_73comp_dist_los_vpoly, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_72comp_dist_los_vpoly};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_73comp_dist_los_vpoly(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
__Pyx_memviewslice __pyx_v_ray_orig = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ray_vdir = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_ves_poly = { 0, 0, { 0 }, { 0 }, { 0 } };
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
CYTHON_UNUSED double __pyx_v_eps_plane;
CYTHON_UNUSED PyObject *__pyx_v_ves_type = 0;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_vpoly (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_num_threads,0};
PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
values[8] = ((PyObject*)__pyx_n_s_Tor);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly", 0, 3, 10, 1); __PYX_ERR(0, 5840, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly", 0, 3, 10, 2); __PYX_ERR(0, 5840, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[3] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[9] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "comp_dist_los_vpoly") < 0)) __PYX_ERR(0, 5840, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_ray_orig = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ray_orig.memview)) __PYX_ERR(0, 5840, __pyx_L3_error)
__pyx_v_ray_vdir = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ray_vdir.memview)) __PYX_ERR(0, 5841, __pyx_L3_error)
__pyx_v_ves_poly = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_ves_poly.memview)) __PYX_ERR(0, 5842, __pyx_L3_error)
if (values[3]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5843, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__91;
}
if (values[4]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5843, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__92;
}
if (values[5]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5844, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__93;
}
if (values[6]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5844, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__94;
}
if (values[7]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5845, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__95;
}
__pyx_v_ves_type = ((PyObject*)values[8]);
if (values[9]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[9]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5846, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly", 0, 3, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5840, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_vpoly", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 5845, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_72comp_dist_los_vpoly(__pyx_self, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_num_threads);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_72comp_dist_los_vpoly(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_ray_orig, __Pyx_memviewslice __pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, CYTHON_UNUSED double __pyx_v_eps_plane, CYTHON_UNUSED PyObject *__pyx_v_ves_type, int __pyx_v_num_threads) {
int __pyx_v_npts_poly;
int __pyx_v_num_los;
int __pyx_v_ind_los;
double *__pyx_v_res_loc;
double __pyx_v_crit2;
double __pyx_v_invuz;
double __pyx_v_dpar2;
double __pyx_v_upar2;
double __pyx_v_upscaDp;
double __pyx_v_crit2_base;
arrayobject *__pyx_v_dist_vpoly = 0;
arrayobject *__pyx_v_kmin_vpoly = 0;
__Pyx_memviewslice __pyx_v_dist_view = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_kmin_view = { 0, 0, { 0 }, { 0 }, { 0 } };
double *__pyx_v_loc_org;
double *__pyx_v_loc_dir;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_vpoly", 0);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
__Pyx_XDECREF(__pyx_t_25);
__Pyx_XDECREF(__pyx_t_26);
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_vpoly", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_dist_vpoly);
__Pyx_XDECREF((PyObject *)__pyx_v_kmin_vpoly);
__PYX_XDEC_MEMVIEW(&__pyx_v_dist_view, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_kmin_view, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ray_orig, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ray_vdir, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_ves_poly, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__230 = PyTuple_Pack(28, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_num_threads, __pyx_n_s_npts_poly, __pyx_n_s_num_los, __pyx_n_s_ii, __pyx_n_s_ind_vert, __pyx_n_s_ind_los, __pyx_n_s_res_loc, __pyx_n_s_crit2, __pyx_n_s_invuz, __pyx_n_s_dpar2, __pyx_n_s_upar2, __pyx_n_s_upscaDp, __pyx_n_s_crit2_base, __pyx_n_s_dist_vpoly, __pyx_n_s_kmin_vpoly, __pyx_n_s_dist_view, __pyx_n_s_kmin_view, __pyx_n_s_loc_org, __pyx_n_s_loc_dir); if (unlikely(!__pyx_tuple__230)) __PYX_ERR(0, 5840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__230);
__Pyx_GIVEREF(__pyx_tuple__230);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_73comp_dist_los_vpoly, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5840, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_comp_dist_los_vpoly, __pyx_t_2) < 0) __PYX_ERR(0, 5840, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(10, 0, 28, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__230, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_comp_dist_los_vpoly, 5840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(0, 5840, __pyx_L1_error)
5841: double[:, ::1] ray_vdir,
5842: double[:, ::1] ves_poly,
+5843: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__91 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__92 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+5844: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__93 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__94 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+5845: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__95 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
5846: int num_threads=16):
5847: """
5848: This function computes the distance (and the associated k) between num_los
5849: Rays (or LOS) and an `IN` structure (a polygon extruded around the axis
5850: (0,0,1), eg. a flux surface).
5851: For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO
5852:
5853: Params
5854: ======
5855: ray_orig : (3, num_los) double array
5856: LOS origin points coordinates
5857: ray_vdir : (3, num_los) double array
5858: LOS normalized direction vector
5859: ves_poly : (2, num_vertex) double array
5860: Coordinates of the vertices of the Polygon defining the 2D poloidal
5861: cut of the Vessel
5862: eps_<val> : double
5863: Small value, acceptance of error
5864: Returns
5865: =======
5866: kmin_vpoly : (num_los) double array
5867: Of the form [k_0, k_1, ..., k_n], where k_i is the coefficient
5868: such that the i-th ray (LOS) is closest to the extruded polygon
5869: at the point P_i = orig[i] + kmin[i] * vdir[i]
5870: dist_vpoly : (num_los) double array
5871: `distance[i]` is the distance from P_i to the extruded polygon.
5872: ---
5873: This is the PYTHON function, use only if you need this computation from
5874: Python, if you need it from Cython, use `simple_dist_los_vpoly_core`
5875: """
+5876: cdef int npts_poly = ves_poly.shape[1]
__pyx_v_npts_poly = (__pyx_v_ves_poly.shape[1]);
+5877: cdef int num_los = ray_orig.shape[1]
__pyx_v_num_los = (__pyx_v_ray_orig.shape[1]);
5878: cdef int ii, ind_vert, ind_los
+5879: cdef double* res_loc = NULL
__pyx_v_res_loc = NULL;
5880: cdef double crit2, invuz, dpar2, upar2, upscaDp
+5881: cdef double crit2_base = eps_uz * eps_uz /400.
__pyx_v_crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
+5882: cdef array dist_vpoly = clone(array('d'), num_los, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), __pyx_v_num_los, 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5882, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_dist_vpoly = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
+5883: cdef array kmin_vpoly = clone(array('d'), num_los, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), __pyx_v_num_los, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_kmin_vpoly = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
5884: cdef double[::1] dist_view, kmin_view
+5885: dist_view = dist_vpoly
__pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_dist_vpoly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 5885, __pyx_L1_error) __pyx_v_dist_view = __pyx_t_3; __pyx_t_3.memview = NULL; __pyx_t_3.data = NULL;
+5886: kmin_view = kmin_vpoly
__pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_kmin_vpoly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 5886, __pyx_L1_error) __pyx_v_kmin_view = __pyx_t_3; __pyx_t_3.memview = NULL; __pyx_t_3.data = NULL;
5887: # == Defining parallel part ================================================
+5888: with nogil, parallel(num_threads=num_threads):
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_res_loc) {
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_res_loc) num_threads(__pyx_v_num_threads)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_loc_dir = ((double *)1);
__pyx_v_loc_org = ((double *)1);
__pyx_v_res_loc = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L5;
}
__pyx_L5:;
}
}
5889: # We use local arrays for each thread so...
+5890: loc_org = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_org = ((double *)malloc(((sizeof(double)) * 3)));
+5891: loc_dir = <double *> malloc(sizeof(double) * 3)
__pyx_v_loc_dir = ((double *)malloc(((sizeof(double)) * 3)));
+5892: res_loc = <double *> malloc(2*sizeof(double))
__pyx_v_res_loc = ((double *)malloc((2 * (sizeof(double)))));
5893: # == The parallelization over the LOS ==================================
+5894: for ind_los in prange(num_los, schedule='dynamic'):
__pyx_t_4 = __pyx_v_num_los;
if (1 == 0) abort();
{
__pyx_t_6 = (__pyx_t_4 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_6 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_crit2) lastprivate(__pyx_v_dpar2) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_invuz) lastprivate(__pyx_v_upar2) lastprivate(__pyx_v_upscaDp) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_6; __pyx_t_5++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_5);
/* Initialize private variables to invalid values */
__pyx_v_crit2 = ((double)__PYX_NAN());
__pyx_v_dpar2 = ((double)__PYX_NAN());
__pyx_v_invuz = ((double)__PYX_NAN());
__pyx_v_upar2 = ((double)__PYX_NAN());
__pyx_v_upscaDp = ((double)__PYX_NAN());
+5895: loc_org[0] = ray_orig[0, ind_los]
__pyx_t_7 = 0;
__pyx_t_8 = __pyx_v_ind_los;
(__pyx_v_loc_org[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_7 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_8)) )));
+5896: loc_org[1] = ray_orig[1, ind_los]
__pyx_t_9 = 1;
__pyx_t_10 = __pyx_v_ind_los;
(__pyx_v_loc_org[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_9 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_10)) )));
+5897: loc_org[2] = ray_orig[2, ind_los]
__pyx_t_11 = 2;
__pyx_t_12 = __pyx_v_ind_los;
(__pyx_v_loc_org[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_orig.data + __pyx_t_11 * __pyx_v_ray_orig.strides[0]) )) + __pyx_t_12)) )));
+5898: loc_dir[0] = ray_vdir[0, ind_los]
__pyx_t_13 = 0;
__pyx_t_14 = __pyx_v_ind_los;
(__pyx_v_loc_dir[0]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_13 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_14)) )));
+5899: loc_dir[1] = ray_vdir[1, ind_los]
__pyx_t_15 = 1;
__pyx_t_16 = __pyx_v_ind_los;
(__pyx_v_loc_dir[1]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_15 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_16)) )));
+5900: loc_dir[2] = ray_vdir[2, ind_los]
__pyx_t_17 = 2;
__pyx_t_18 = __pyx_v_ind_los;
(__pyx_v_loc_dir[2]) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ray_vdir.data + __pyx_t_17 * __pyx_v_ray_vdir.strides[0]) )) + __pyx_t_18)) )));
5901: # -- Computing values that depend on the LOS/ray -------------------
+5902: upscaDp = loc_dir[0]*loc_org[0] + loc_dir[1]*loc_org[1]
__pyx_v_upscaDp = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_org[1])));
+5903: upar2 = loc_dir[0]*loc_dir[0] + loc_dir[1]*loc_dir[1]
__pyx_v_upar2 = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_dir[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_dir[1])));
+5904: dpar2 = loc_org[0]*loc_org[0] + loc_org[1]*loc_org[1]
__pyx_v_dpar2 = (((__pyx_v_loc_org[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_org[1]) * (__pyx_v_loc_org[1])));
+5905: invuz = 1./loc_dir[2]
__pyx_v_invuz = (1. / (__pyx_v_loc_dir[2]));
+5906: crit2 = upar2*crit2_base
__pyx_v_crit2 = (__pyx_v_upar2 * __pyx_v_crit2_base);
+5907: simple_dist_los_vpoly_core(loc_org, loc_dir,
__pyx_f_4tofu_4geom_5_GG03_simple_dist_los_vpoly_core(__pyx_v_loc_org, __pyx_v_loc_dir, (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_19 * __pyx_v_ves_poly.strides[0]) )) + __pyx_t_20)) )))), (&(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_21 * __pyx_v_ves_poly.strides[0]) )) + __pyx_t_22)) )))), __pyx_v_npts_poly, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_res_loc);
+5908: &ves_poly[0][0],
__pyx_t_19 = 0;
__pyx_t_20 = 0;
+5909: &ves_poly[1][0],
__pyx_t_21 = 1;
__pyx_t_22 = 0;
5910: npts_poly, upscaDp,
5911: upar2, dpar2,
5912: invuz, crit2,
5913: eps_uz, eps_vz,
5914: eps_a, eps_b,
5915: res_loc)
+5916: dist_view[ind_los] = res_loc[1]
__pyx_t_23 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_dist_view.data) + __pyx_t_23)) )) = (__pyx_v_res_loc[1]);
+5917: kmin_view[ind_los] = res_loc[0]
__pyx_t_24 = __pyx_v_ind_los;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_kmin_view.data) + __pyx_t_24)) )) = (__pyx_v_res_loc[0]);
}
}
}
}
+5918: free(loc_org)
free(__pyx_v_loc_org);
+5919: free(loc_dir)
free(__pyx_v_loc_dir);
+5920: free(res_loc)
free(__pyx_v_res_loc);
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+5921: return np.asarray(kmin_vpoly), np.asarray(dist_vpoly)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_25))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_25); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_25, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_25, __pyx_t_2, ((PyObject *)__pyx_v_kmin_vpoly)) : __Pyx_PyObject_CallOneArg(__pyx_t_25, ((PyObject *)__pyx_v_kmin_vpoly)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_26))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_26); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_26, function); } } __pyx_t_25 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_26, __pyx_t_2, ((PyObject *)__pyx_v_dist_vpoly)) : __Pyx_PyObject_CallOneArg(__pyx_t_26, ((PyObject *)__pyx_v_dist_vpoly)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_25); __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0; __pyx_t_26 = PyTuple_New(2); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 5921, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_26); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_26, 1, __pyx_t_25); __pyx_t_1 = 0; __pyx_t_25 = 0; __pyx_r = __pyx_t_26; __pyx_t_26 = 0; goto __pyx_L0;
5922:
5923:
+5924: def comp_dist_los_vpoly_vec(int nvpoly, int nlos,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_75comp_dist_los_vpoly_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_74comp_dist_los_vpoly_vec[] = "\n This function computes the distance (and the associated k) between num_los\n Rays (or LOS) and several `IN` structures (polygons extruded around the axis\n (0,0,1), eg. flux surfaces).\n For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO\n\n Params\n ======\n nvpoly : int\n Number of flux surfaces\n nlos : int\n Number of LOS\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS normalized direction vector\n ves_poly : (num_pol, 2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the different IN surfaces\n WARNING : we suppose all poly are nested in each other,\n from inner to outer\n eps_<val> : double\n Small value, acceptance of error\n Returns\n =======\n kmin_vpoly : (npoly, num_los) double array\n Of the form [k_00, k_01, ..., k_0n, k_10, k_11, ..., k_1n, ...]\n where k_ij is the coefficient for the j-th flux surface\n such that the i-th ray (LOS) is closest to the extruded polygon\n at the point P_i = orig[i] + kmin[i] * vdir[i]\n dist_vpoly : (npoly, num_los) double array\n `distance[i * num_poly + j]` is the distance from P_i to the i-th\n extruded poly.\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `comp_dist_los_vpoly_vec_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_75comp_dist_los_vpoly_vec = {"comp_dist_los_vpoly_vec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_75comp_dist_los_vpoly_vec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_74comp_dist_los_vpoly_vec};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_75comp_dist_los_vpoly_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_nvpoly;
int __pyx_v_nlos;
PyArrayObject *__pyx_v_ray_orig = 0;
PyArrayObject *__pyx_v_ray_vdir = 0;
PyArrayObject *__pyx_v_ves_poly = 0;
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
double __pyx_v_eps_plane;
PyObject *__pyx_v_ves_type = 0;
PyObject *__pyx_v_algo_type = 0;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_vpoly_vec (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nvpoly,&__pyx_n_s_nlos,&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_algo_type,&__pyx_n_s_num_threads,0};
PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
values[10] = ((PyObject*)__pyx_n_s_Tor);
values[11] = ((PyObject*)__pyx_n_s_simple);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nvpoly)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlos)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly_vec", 0, 5, 13, 1); __PYX_ERR(0, 5924, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly_vec", 0, 5, 13, 2); __PYX_ERR(0, 5924, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly_vec", 0, 5, 13, 3); __PYX_ERR(0, 5924, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly_vec", 0, 5, 13, 4); __PYX_ERR(0, 5924, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_algo_type);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[12] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "comp_dist_los_vpoly_vec") < 0)) __PYX_ERR(0, 5924, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_nvpoly = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nvpoly == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5924, __pyx_L3_error)
__pyx_v_nlos = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nlos == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5924, __pyx_L3_error)
__pyx_v_ray_orig = ((PyArrayObject *)values[2]);
__pyx_v_ray_vdir = ((PyArrayObject *)values[3]);
__pyx_v_ves_poly = ((PyArrayObject *)values[4]);
if (values[5]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5928, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__96;
}
if (values[6]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5928, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__97;
}
if (values[7]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5929, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__98;
}
if (values[8]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5929, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__99;
}
if (values[9]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5930, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__100;
}
__pyx_v_ves_type = ((PyObject*)values[10]);
__pyx_v_algo_type = ((PyObject*)values[11]);
if (values[12]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[12]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5931, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("comp_dist_los_vpoly_vec", 0, 5, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5924, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_vpoly_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_orig), __pyx_ptype_5numpy_ndarray, 1, "ray_orig", 0))) __PYX_ERR(0, 5925, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_vdir), __pyx_ptype_5numpy_ndarray, 1, "ray_vdir", 0))) __PYX_ERR(0, 5926, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_poly), __pyx_ptype_5numpy_ndarray, 1, "ves_poly", 0))) __PYX_ERR(0, 5927, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 5930, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_algo_type), (&PyString_Type), 1, "algo_type", 1))) __PYX_ERR(0, 5931, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_74comp_dist_los_vpoly_vec(__pyx_self, __pyx_v_nvpoly, __pyx_v_nlos, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_v_num_threads);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_74comp_dist_los_vpoly_vec(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nvpoly, int __pyx_v_nlos, PyArrayObject *__pyx_v_ray_orig, PyArrayObject *__pyx_v_ray_vdir, PyArrayObject *__pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, int __pyx_v_num_threads) {
PyObject *__pyx_v_warn = NULL;
arrayobject *__pyx_v_kmin_tab = 0;
arrayobject *__pyx_v_dist_tab = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_orig;
__Pyx_Buffer __pyx_pybuffer_ray_orig;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_vdir;
__Pyx_Buffer __pyx_pybuffer_ray_vdir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ves_poly;
__Pyx_Buffer __pyx_pybuffer_ves_poly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_vpoly_vec", 0);
__pyx_pybuffer_ray_orig.pybuffer.buf = NULL;
__pyx_pybuffer_ray_orig.refcount = 0;
__pyx_pybuffernd_ray_orig.data = NULL;
__pyx_pybuffernd_ray_orig.rcbuffer = &__pyx_pybuffer_ray_orig;
__pyx_pybuffer_ray_vdir.pybuffer.buf = NULL;
__pyx_pybuffer_ray_vdir.refcount = 0;
__pyx_pybuffernd_ray_vdir.data = NULL;
__pyx_pybuffernd_ray_vdir.rcbuffer = &__pyx_pybuffer_ray_vdir;
__pyx_pybuffer_ves_poly.pybuffer.buf = NULL;
__pyx_pybuffer_ves_poly.refcount = 0;
__pyx_pybuffernd_ves_poly.data = NULL;
__pyx_pybuffernd_ves_poly.rcbuffer = &__pyx_pybuffer_ves_poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_orig, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5924, __pyx_L1_error)
}
__pyx_pybuffernd_ray_orig.diminfo[0].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_orig.diminfo[0].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_orig.diminfo[1].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_orig.diminfo[1].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_vdir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5924, __pyx_L1_error)
}
__pyx_pybuffernd_ray_vdir.diminfo[0].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_vdir.diminfo[0].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_vdir.diminfo[1].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_vdir.diminfo[1].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_ves_poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 3, 0, __pyx_stack) == -1)) __PYX_ERR(0, 5924, __pyx_L1_error)
}
__pyx_pybuffernd_ves_poly.diminfo[0].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ves_poly.diminfo[0].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ves_poly.diminfo[1].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ves_poly.diminfo[1].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_ves_poly.diminfo[2].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_ves_poly.diminfo[2].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[2];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
__Pyx_XDECREF(__pyx_t_10);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.comp_dist_los_vpoly_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF((PyObject *)__pyx_v_kmin_tab);
__Pyx_XDECREF((PyObject *)__pyx_v_dist_tab);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__232 = PyTuple_Pack(16, __pyx_n_s_nvpoly, __pyx_n_s_nlos, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_algo_type, __pyx_n_s_num_threads, __pyx_n_s_warn, __pyx_n_s_kmin_tab, __pyx_n_s_dist_tab); if (unlikely(!__pyx_tuple__232)) __PYX_ERR(0, 5924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__232);
__Pyx_GIVEREF(__pyx_tuple__232);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_75comp_dist_los_vpoly_vec, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5924, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_comp_dist_los_vpoly_vec, __pyx_t_2) < 0) __PYX_ERR(0, 5924, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(13, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__232, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_comp_dist_los_vpoly_vec, 5924, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(0, 5924, __pyx_L1_error)
5925: np.ndarray[double,ndim=2,mode='c'] ray_orig,
5926: np.ndarray[double,ndim=2,mode='c'] ray_vdir,
5927: np.ndarray[double,ndim=3,mode='c'] ves_poly,
+5928: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__96 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__97 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+5929: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__98 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__99 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+5930: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__100 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
5931: str algo_type='simple', int num_threads=16):
5932: """
5933: This function computes the distance (and the associated k) between num_los
5934: Rays (or LOS) and several `IN` structures (polygons extruded around the axis
5935: (0,0,1), eg. flux surfaces).
5936: For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO
5937:
5938: Params
5939: ======
5940: nvpoly : int
5941: Number of flux surfaces
5942: nlos : int
5943: Number of LOS
5944: ray_orig : (3, num_los) double array
5945: LOS origin points coordinates
5946: ray_vdir : (3, num_los) double array
5947: LOS normalized direction vector
5948: ves_poly : (num_pol, 2, num_vertex) double array
5949: Coordinates of the vertices of the Polygon defining the 2D poloidal
5950: cut of the different IN surfaces
5951: WARNING : we suppose all poly are nested in each other,
5952: from inner to outer
5953: eps_<val> : double
5954: Small value, acceptance of error
5955: Returns
5956: =======
5957: kmin_vpoly : (npoly, num_los) double array
5958: Of the form [k_00, k_01, ..., k_0n, k_10, k_11, ..., k_1n, ...]
5959: where k_ij is the coefficient for the j-th flux surface
5960: such that the i-th ray (LOS) is closest to the extruded polygon
5961: at the point P_i = orig[i] + kmin[i] * vdir[i]
5962: dist_vpoly : (npoly, num_los) double array
5963: `distance[i * num_poly + j]` is the distance from P_i to the i-th
5964: extruded poly.
5965: ---
5966: This is the PYTHON function, use only if you need this computation from
5967: Python, if you need it from Cython, use `comp_dist_los_vpoly_vec_core`
5968: """
+5969: if not algo_type.lower() == "simple" or not ves_type.lower() == "tor":
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_algo_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_simple, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5969, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((!__pyx_t_3) != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5969, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+5970: assert False, "The function is only implemented with the simple"\
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
+5971: + " algorithm and for toroidal vessels... Sorry!"
__pyx_t_2 = PyNumber_Add(__pyx_kp_s_The_function_is_only_implemented, __pyx_kp_s_algorithm_and_for_toroidal_vess); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); PyErr_SetObject(PyExc_AssertionError, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 5970, __pyx_L1_error) } } #endif
+5972: from warnings import warn
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_warn); __pyx_t_5 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_2, -1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v_warn = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5973: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__101, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__101 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 5973, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__101); __Pyx_GIVEREF(__pyx_tuple__101);
5974: Warning)
5975:
+5976: cdef array kmin_tab = clone(array('d'), nvpoly*nlos, True)
__pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_5), (__pyx_v_nvpoly * __pyx_v_nlos), 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5976, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_v_kmin_tab = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
+5977: cdef array dist_tab = clone(array('d'), nvpoly*nlos, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), (__pyx_v_nvpoly * __pyx_v_nlos), 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5977, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dist_tab = ((arrayobject *)__pyx_t_5); __pyx_t_5 = 0;
+5978: comp_dist_los_vpoly_vec_core(nvpoly, nlos,
__pyx_t_9.__pyx_n = 1; __pyx_t_9.num_threads = __pyx_v_num_threads; __pyx_f_4tofu_4geom_5_GG03_comp_dist_los_vpoly_vec_core(__pyx_v_nvpoly, __pyx_v_nlos, ((double *)__pyx_v_ray_orig->data), ((double *)__pyx_v_ray_vdir->data), __pyx_t_6, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_t_7, __pyx_t_8, &__pyx_t_9); __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1); __pyx_t_6.memview = NULL; __pyx_t_6.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1); __pyx_t_7.memview = NULL; __pyx_t_7.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1); __pyx_t_8.memview = NULL; __pyx_t_8.data = NULL;
5979: <double*>ray_orig.data,
5980: <double*>ray_vdir.data,
+5981: ves_poly,
__pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(((PyObject *)__pyx_v_ves_poly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 5981, __pyx_L1_error)
5982: eps_uz, eps_a,
5983: eps_vz, eps_b,
5984: eps_plane,
5985: ves_type,
5986: algo_type,
+5987: kmin_tab, dist_tab,
__pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_kmin_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 5987, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_dist_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 5987, __pyx_L1_error)
5988: num_threads)
+5989: return np.asarray(kmin_tab).reshape(nlos, nvpoly),\
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_2 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_10, ((PyObject *)__pyx_v_kmin_tab)) : __Pyx_PyObject_CallOneArg(__pyx_t_11, ((PyObject *)__pyx_v_kmin_tab)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_reshape); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_nvpoly); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_t_10}; __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_2, __pyx_t_10}; __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_10); __pyx_t_2 = 0; __pyx_t_10 = 0; __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5989, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_11); __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
+5990: np.asarray(dist_tab).reshape(nlos, nvpoly)
__Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; __pyx_t_10 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_10)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_10); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_14 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_10, ((PyObject *)__pyx_v_dist_tab)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_dist_tab)); __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_reshape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_nvpoly); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); __pyx_t_12 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_14, __pyx_t_10}; __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_14, __pyx_t_10}; __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_12) { __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12); __pyx_t_12 = NULL; } __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_13, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_13, __pyx_t_10); __pyx_t_14 = 0; __pyx_t_10 = 0; __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5990, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
5991:
5992:
+5993: cdef void comp_dist_los_vpoly_vec_core(int num_poly, int nlos,
static void __pyx_f_4tofu_4geom_5_GG03_comp_dist_los_vpoly_vec_core(int __pyx_v_num_poly, CYTHON_UNUSED int __pyx_v_nlos, double *__pyx_v_ray_orig, double *__pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, CYTHON_UNUSED double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, __Pyx_memviewslice __pyx_v_res_k, __Pyx_memviewslice __pyx_v_res_dist, struct __pyx_opt_args_4tofu_4geom_5_GG03_comp_dist_los_vpoly_vec_core *__pyx_optional_args) {
int __pyx_v_i;
int __pyx_v_ind_los;
int __pyx_v_ind_pol;
int __pyx_v_ind_pol2;
int __pyx_v_npts_poly;
double *__pyx_v_loc_res;
double *__pyx_v_loc_dir;
double *__pyx_v_loc_org;
double __pyx_v_crit2;
double __pyx_v_invuz;
double __pyx_v_dpar2;
double __pyx_v_upar2;
double __pyx_v_upscaDp;
double __pyx_v_crit2_base;
PyObject *__pyx_v_warn = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("comp_dist_los_vpoly_vec_core", 0);
if (__pyx_optional_args) {
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_WriteUnraisable("tofu.geom._GG03.comp_dist_los_vpoly_vec_core", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_RefNannyFinishContext();
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_comp_dist_los_vpoly_vec_core {
int __pyx_n;
int num_threads;
};
5994: double* ray_orig,
5995: double* ray_vdir,
5996: double[:,:,::1] ves_poly,
5997: double eps_uz,
5998: double eps_a,
5999: double eps_vz,
6000: double eps_b,
6001: double eps_plane,
6002: str ves_type,
6003: str algo_type,
6004: double[::1] res_k,
6005: double[::1] res_dist,
6006: int num_threads=16):
6007: """
6008: This function computes the distance (and the associated k) between nlos
6009: Rays (or LOS) and several `IN` structures (polygons extruded around the axis
6010: (0,0,1), eg. flux surfaces).
6011: For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO
6012:
6013: Params
6014: ======
6015: num_poly : int
6016: Number of flux surfaces
6017: nlos : int
6018: Number of LOS
6019: ray_orig : (3, nlos) double array
6020: LOS origin points coordinates
6021: ray_vdir : (3, nlos) double array
6022: LOS normalized direction vector
6023: ves_poly : (num_pol, 2, num_vertex) double array
6024: Coordinates of the vertices of the Polygon defining the 2D poloidal
6025: cut of the different IN surfaces.
6026: WARNING : we suppose all poly are nested in each other,
6027: from inner to outer
6028: eps_<val> : double
6029: Small value, acceptance of error
6030: Returns
6031: =======
6032: kmin_vpoly : (npoly, nlos) double array
6033: Of the form [k_00, k_01, ..., k_0n, k_10, k_11, ..., k_1n, ...]
6034: where k_ij is the coefficient for the j-th flux surface
6035: such that the i-th ray (LOS) is closest to the extruded polygon
6036: at the point P_i = orig[i] + kmin[i] * vdir[i]
6037: dist_vpoly : (npoly, nlos) double array
6038: `distance[j, i]` is the distance from P_i to the i-th extruded poly.
6039: ---
6040: This is the CYTHON function, use only if you need this computation from
6041: Cython, if you need it from Python, use `comp_dist_los_vpoly_vec`
6042: """
6043: cdef int i, ind_los, ind_pol, ind_pol2
6044: cdef int npts_poly
6045: cdef double* loc_res
6046: cdef double* loc_dir
6047: cdef double* loc_org
6048: cdef double* lpolyx
6049: cdef double* lpolyy
6050: cdef double crit2, invuz, dpar2, upar2, upscaDp
+6051: cdef double crit2_base = eps_uz * eps_uz /400.
__pyx_v_crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
6052:
+6053: if not algo_type.lower() == "simple" or not ves_type.lower() == "tor":
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_algo_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_simple, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6053, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((!__pyx_t_3) != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6053, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 6053, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+6054: assert False, "The function is only implemented with the simple"\
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
+6055: + " algorithm and for toroidal vessels... Sorry!"
__pyx_t_2 = PyNumber_Add(__pyx_kp_s_The_function_is_only_implemented, __pyx_kp_s_algorithm_and_for_toroidal_vess); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); PyErr_SetObject(PyExc_AssertionError, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 6054, __pyx_L1_error) } } #endif
+6056: from warnings import warn
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_warn); __pyx_t_5 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_2, -1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v_warn = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6057: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__102, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__102 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(0, 6057, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__102); __Pyx_GIVEREF(__pyx_tuple__102);
6058: Warning)
6059:
6060: # == Defining parallel part ================================================
+6061: with nogil, parallel():
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_loc_res)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_loc_dir = ((double *)1);
__pyx_v_loc_org = ((double *)1);
__pyx_v_loc_res = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L7_error: {
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L1_error;
}
__pyx_L8:;
}
}
6062: # We use local arrays for each thread so...
+6063: loc_dir = <double*>malloc(3*sizeof(double))
__pyx_v_loc_dir = ((double *)malloc((3 * (sizeof(double)))));
+6064: loc_org = <double*>malloc(3*sizeof(double))
__pyx_v_loc_org = ((double *)malloc((3 * (sizeof(double)))));
+6065: loc_res = <double*>malloc(2*sizeof(double))
__pyx_v_loc_res = ((double *)malloc((2 * (sizeof(double)))));
6066: # == The parallelization over the LOS ==================================
+6067: for ind_los in prange(nlos, schedule='dynamic'):
__pyx_t_6 = __pyx_v_nlos;
if (1 == 0) abort();
{
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_crit2) lastprivate(__pyx_v_dpar2) lastprivate(__pyx_v_i) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_pol) lastprivate(__pyx_v_ind_pol2) lastprivate(__pyx_v_invuz) lastprivate(__pyx_v_npts_poly) lastprivate(__pyx_v_upar2) lastprivate(__pyx_v_upscaDp) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_crit2 = ((double)__PYX_NAN());
__pyx_v_dpar2 = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_ind_pol = ((int)0xbad0bad0);
__pyx_v_ind_pol2 = ((int)0xbad0bad0);
__pyx_v_invuz = ((double)__PYX_NAN());
__pyx_v_npts_poly = ((int)0xbad0bad0);
__pyx_v_upar2 = ((double)__PYX_NAN());
__pyx_v_upscaDp = ((double)__PYX_NAN());
+6068: for i in range(3):
for (__pyx_t_9 = 0; __pyx_t_9 < 3; __pyx_t_9+=1) {
__pyx_v_i = __pyx_t_9;
+6069: loc_dir[i] = ray_vdir[ind_los * 3 + i]
(__pyx_v_loc_dir[__pyx_v_i]) = (__pyx_v_ray_vdir[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
+6070: loc_org[i] = ray_orig[ind_los * 3 + i]
(__pyx_v_loc_org[__pyx_v_i]) = (__pyx_v_ray_orig[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
}
6071: # -- Computing values that depend on the LOS/ray -------------------
+6072: upscaDp = loc_dir[0]*loc_org[0] + loc_dir[1]*loc_org[1]
__pyx_v_upscaDp = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_org[1])));
+6073: upar2 = loc_dir[0]*loc_dir[0] + loc_dir[1]*loc_dir[1]
__pyx_v_upar2 = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_dir[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_dir[1])));
+6074: dpar2 = loc_org[0]*loc_org[0] + loc_org[1]*loc_org[1]
__pyx_v_dpar2 = (((__pyx_v_loc_org[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_org[1]) * (__pyx_v_loc_org[1])));
+6075: invuz = 1./loc_dir[2]
__pyx_v_invuz = (1. / (__pyx_v_loc_dir[2]));
+6076: crit2 = upar2*crit2_base
__pyx_v_crit2 = (__pyx_v_upar2 * __pyx_v_crit2_base);
6077: # -- Looping over each flux surface---------------------------------
+6078: for ind_pol in range(num_poly):
__pyx_t_9 = __pyx_v_num_poly;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ind_pol = __pyx_t_11;
+6079: npts_poly = ves_poly[ind_pol].shape[1]
__pyx_t_12.data = __pyx_v_ves_poly.data;
__pyx_t_12.memview = __pyx_v_ves_poly.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_ind_pol;
Py_ssize_t __pyx_tmp_stride = __pyx_v_ves_poly.strides[0];
if ((0)) __PYX_ERR(0, 6079, __pyx_L15_error)
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_ves_poly.shape[1];
__pyx_t_12.strides[0] = __pyx_v_ves_poly.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_ves_poly.shape[2];
__pyx_t_12.strides[1] = __pyx_v_ves_poly.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_v_npts_poly = (__pyx_t_12.shape[1]);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
+6080: simple_dist_los_vpoly_core(loc_org, loc_dir,
__pyx_f_4tofu_4geom_5_GG03_simple_dist_los_vpoly_core(__pyx_v_loc_org, __pyx_v_loc_dir, (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_13 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_14 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_15)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_16 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_17 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_18)) )))), __pyx_v_npts_poly, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_loc_res);
+6081: &ves_poly[ind_pol][0][0],
__pyx_t_13 = __pyx_v_ind_pol;
__pyx_t_14 = 0;
__pyx_t_15 = 0;
+6082: &ves_poly[ind_pol][1][0],
__pyx_t_16 = __pyx_v_ind_pol;
__pyx_t_17 = 1;
__pyx_t_18 = 0;
6083: npts_poly, upscaDp,
6084: upar2, dpar2,
6085: invuz, crit2,
6086: eps_uz, eps_vz,
6087: eps_a, eps_b,
6088: loc_res)
+6089: res_k[ind_los * num_poly + ind_pol] = loc_res[0]
__pyx_t_19 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol);
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_res_k.data) + __pyx_t_19)) )) = (__pyx_v_loc_res[0]);
+6090: res_dist[ind_los * num_poly + ind_pol] = loc_res[1]
__pyx_t_20 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol);
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_res_dist.data) + __pyx_t_20)) )) = (__pyx_v_loc_res[1]);
+6091: if not loc_res[1] == loc_res[1] : #is nan
__pyx_t_1 = ((!(((__pyx_v_loc_res[1]) == (__pyx_v_loc_res[1])) != 0)) != 0);
if (__pyx_t_1) {
/* … */
}
__pyx_L19_continue:;
}
goto __pyx_L25;
__pyx_L15_error:;
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_exc_type)
#endif /* _OPENMP */
if (!__pyx_parallel_exc_type) {
__Pyx_ErrFetchWithState(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb);
__pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno;
__Pyx_GOTREF(__pyx_parallel_exc_type);
}
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
__pyx_parallel_why = 4;
goto __pyx_L24;
__pyx_L24:;
#ifdef _OPENMP
#pragma omp critical(__pyx_parallel_lastprivates0)
#endif /* _OPENMP */
{
__pyx_parallel_temp0 = __pyx_v_crit2;
__pyx_parallel_temp1 = __pyx_v_dpar2;
__pyx_parallel_temp2 = __pyx_v_i;
__pyx_parallel_temp3 = __pyx_v_ind_los;
__pyx_parallel_temp4 = __pyx_v_ind_pol;
__pyx_parallel_temp5 = __pyx_v_ind_pol2;
__pyx_parallel_temp6 = __pyx_v_invuz;
__pyx_parallel_temp7 = __pyx_v_npts_poly;
__pyx_parallel_temp8 = __pyx_v_upar2;
__pyx_parallel_temp9 = __pyx_v_upscaDp;
}
__pyx_L25:;
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_why)
#endif /* _OPENMP */
}
}
}
if (__pyx_parallel_exc_type) {
/* This may have been overridden by a continue, break or return in another thread. Prefer the error. */
__pyx_parallel_why = 4;
}
if (__pyx_parallel_why) {
__pyx_v_crit2 = __pyx_parallel_temp0;
__pyx_v_dpar2 = __pyx_parallel_temp1;
__pyx_v_i = __pyx_parallel_temp2;
__pyx_v_ind_los = __pyx_parallel_temp3;
__pyx_v_ind_pol = __pyx_parallel_temp4;
__pyx_v_ind_pol2 = __pyx_parallel_temp5;
__pyx_v_invuz = __pyx_parallel_temp6;
__pyx_v_npts_poly = __pyx_parallel_temp7;
__pyx_v_upar2 = __pyx_parallel_temp8;
__pyx_v_upscaDp = __pyx_parallel_temp9;
switch (__pyx_parallel_why) {
case 4:
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
__Pyx_GIVEREF(__pyx_parallel_exc_type);
__Pyx_ErrRestoreWithState(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb);
__pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno;
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
goto __pyx_L11_error;
}
}
}
+6092: for ind_pol2 in range(ind_pol, num_poly):
__pyx_t_21 = __pyx_v_num_poly;
__pyx_t_22 = __pyx_t_21;
for (__pyx_t_23 = __pyx_v_ind_pol; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
__pyx_v_ind_pol2 = __pyx_t_23;
+6093: res_k[ind_los * num_poly + ind_pol2] = Cnan
__pyx_t_24 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol2);
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_res_k.data) + __pyx_t_24)) )) = NAN;
+6094: res_dist[ind_los * num_poly + ind_pol2] = Cnan
__pyx_t_25 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol2);
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_res_dist.data) + __pyx_t_25)) )) = NAN;
}
+6095: continue
goto __pyx_L19_continue;
+6096: free(loc_dir)
free(__pyx_v_loc_dir);
+6097: free(loc_org)
free(__pyx_v_loc_org);
+6098: free(loc_res)
free(__pyx_v_loc_res);
goto __pyx_L27;
__pyx_L11_error:;
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_exc_type)
#endif /* _OPENMP */
if (!__pyx_parallel_exc_type) {
__Pyx_ErrFetchWithState(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb);
__pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno;
__Pyx_GOTREF(__pyx_parallel_exc_type);
}
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
__pyx_parallel_why = 4;
goto __pyx_L27;
__pyx_L27:;
#ifdef _OPENMP
Py_END_ALLOW_THREADS
#else
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#endif /* _OPENMP */
/* Clean up any temporaries */
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
#ifndef _OPENMP
}
#endif /* _OPENMP */
}
if (__pyx_parallel_exc_type) {
/* This may have been overridden by a continue, break or return in another thread. Prefer the error. */
__pyx_parallel_why = 4;
}
if (__pyx_parallel_why) {
switch (__pyx_parallel_why) {
case 4:
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
__Pyx_GIVEREF(__pyx_parallel_exc_type);
__Pyx_ErrRestoreWithState(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb);
__pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno;
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
goto __pyx_L7_error;
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+6099: return
goto __pyx_L0;
6100:
6101:
+6102: cdef inline void simple_dist_los_vpoly_core(const double[3] ray_orig,
static CYTHON_INLINE void __pyx_f_4tofu_4geom_5_GG03_simple_dist_los_vpoly_core(double *__pyx_v_ray_orig, double *__pyx_v_ray_vdir, double const *__pyx_v_lpolyx, double const *__pyx_v_lpolyy, int const __pyx_v_nvert, double const __pyx_v_upscaDp, double const __pyx_v_upar2, double const __pyx_v_dpar2, double const __pyx_v_invuz, double const __pyx_v_crit2, CYTHON_UNUSED double const __pyx_v_eps_uz, double const __pyx_v_eps_vz, double const __pyx_v_eps_a, double const __pyx_v_eps_b, double *__pyx_v_res_final) {
int __pyx_v_jj;
CYTHON_UNUSED int __pyx_v_indin;
CYTHON_UNUSED int __pyx_v_indout;
double __pyx_v_norm_dir2;
double __pyx_v_norm_dir2_ori;
double __pyx_v_radius_z;
double __pyx_v_q;
double __pyx_v_coeff;
double __pyx_v_sqd;
double __pyx_v_k;
double __pyx_v_v0;
double __pyx_v_v1;
double __pyx_v_val_a;
double __pyx_v_val_b;
double __pyx_v_res_a[2];
double __pyx_v_res_b[2];
double __pyx_v_circle_tangent[3];
double __pyx_v_rdotvec;
/* … */
/* function exit code */
__pyx_L0:;
}
6103: const double[3] ray_vdir,
6104: const double* lpolyx,
6105: const double* lpolyy,
6106: const int nvert,
6107: const double upscaDp,
6108: const double upar2,
6109: const double dpar2,
6110: const double invuz,
6111: const double crit2,
6112: const double eps_uz,
6113: const double eps_vz,
6114: const double eps_a,
6115: const double eps_b,
6116: double* res_final) nogil:
6117: """
6118: This function computes the distance (and the associated k) between a Ray
6119: (or Line Of Sight) and an `IN` structure (a polygon extruded around the axis
6120: (0,0,1), eg. a flux surface).
6121: For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO
6122:
6123: Params
6124: ======
6125: ray_orig : (3) double array
6126: LOS origin point coordinates, noted often : `u`
6127: ray_vdir : (3) double array
6128: LOS normalized direction vector, noted often : `D`
6129: lpolyx : (num_vertex) double array
6130: 1st coordinates of the vertices of the Polygon defining the poloidal
6131: cut of the Vessel
6132: lpolyy : (num_vertex) double array
6133: 2nd coordinates of the vertices of the Polygon defining the poloidal
6134: cut of the Vessel
6135: nvert : integer
6136: number of vertices describing the polygon
6137: upscaDp : double
6138: if u = [ux, uy, uz] is the direction of the ray, and D=[dx, dy, dz]
6139: its origin, then upscaDp = ux*dx + uy*dy
6140: upar2 : double
6141: if u = [ux, uy, uz] is the direction of the ray, and D=[dx, dy, dz]
6142: its origin, then upar2 = ux*ux + uy*uy
6143: dpar2 : double
6144: if u = [ux, uy, uz] is the direction of the ray, and D=[dx, dy, dz]
6145: its origin, then dpar2 = dx*dx + dy*dy
6146: invuz : double
6147: eps_<val> : double
6148: Small value, acceptance of error
6149: Returns
6150: =======
6151: kmin_vpoly : (num_los) double array
6152: Of the form [k_0, k_1, ..., k_n], where k_i is the coefficient
6153: such that the i-th ray (LOS) is closest to the extruded polygon
6154: at the point P_i = orig[i] + kmin[i] * vdir[i]
6155: dist_vpoly : (num_los) double array
6156: `distance[i]` is the distance from P_i to the extruded polygon.
6157: if the i-th LOS intersects the poly, then distance[i] = Cnan
6158: ---
6159: This is the Cython version, only accessible from cython. If you need
6160: to use it from Python please use: comp_dist_los_vpoly
6161: """
6162: cdef int jj
+6163: cdef int indin=0
__pyx_v_indin = 0;
+6164: cdef int indout=0
__pyx_v_indout = 0;
6165: cdef double norm_dir2, norm_dir2_ori
6166: cdef double radius_z
6167: cdef double q, coeff, sqd, k
6168: cdef double v0, v1, val_a, val_b
6169: cdef double[2] res_a
6170: cdef double[2] res_b
6171: cdef double[3] circle_tangent
6172: cdef double rdotvec
+6173: res_final[0] = 1000000000
(__pyx_v_res_final[0]) = 1000000000.0;
+6174: res_final[1] = 1000000000
(__pyx_v_res_final[1]) = 1000000000.0;
6175:
6176: # == Compute all solutions =================================================
6177: # Set tolerance value for ray_vdir[2,ii]
6178: # eps_uz is the tolerated DZ across 20m (max Tokamak size)
+6179: norm_dir2 = Csqrt(compute_dot_prod(ray_vdir, ray_vdir))
__pyx_v_norm_dir2 = sqrt(__pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_ray_vdir, __pyx_v_ray_vdir));
+6180: norm_dir2_ori = norm_dir2
__pyx_v_norm_dir2_ori = __pyx_v_norm_dir2;
+6181: for jj in range(3):
for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
__pyx_v_jj = __pyx_t_1;
+6182: ray_vdir[jj] = ray_vdir[jj] / norm_dir2
(__pyx_v_ray_vdir[__pyx_v_jj]) = ((__pyx_v_ray_vdir[__pyx_v_jj]) / __pyx_v_norm_dir2); }
+6183: norm_dir2 = 1.
__pyx_v_norm_dir2 = 1.;
+6184: if ray_vdir[2] * ray_vdir[2] < crit2:
__pyx_t_2 = ((((__pyx_v_ray_vdir[2]) * (__pyx_v_ray_vdir[2])) < __pyx_v_crit2) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L5;
}
6185: # -- Case with horizontal semi-line ------------------------------------
+6186: for jj in range(nvert-1):
__pyx_t_3 = (__pyx_v_nvert - 1);
__pyx_t_4 = __pyx_t_3;
for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
__pyx_v_jj = __pyx_t_1;
+6187: if (lpolyy[jj+1] - lpolyy[jj])**2 > eps_vz * eps_vz:
__pyx_t_2 = ((pow(((__pyx_v_lpolyy[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyy[__pyx_v_jj])), 2.0) > (__pyx_v_eps_vz * __pyx_v_eps_vz)) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L8;
}
6188: # If segment AB is NOT horizontal, then we can compute distance
6189: # between LOS and cone.
6190: # First we compute the "circle" on the cone that lives on the
6191: # same plane as the line
+6192: q = (ray_orig[2] - lpolyy[jj]) / (lpolyy[jj+1] - lpolyy[jj])
__pyx_v_q = (((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj])) / ((__pyx_v_lpolyy[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyy[__pyx_v_jj])));
+6193: if q < 0. :
__pyx_t_2 = ((__pyx_v_q < 0.) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L9;
}
6194: # Then we only need to compute distance to circle C_A
+6195: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[__pyx_v_jj]), (__pyx_v_lpolyy[__pyx_v_jj]), __pyx_v_norm_dir2, __pyx_v_res_a);
6196: lpolyx[jj], lpolyy[jj],
6197: norm_dir2, res_a)
+6198: elif q > 1:
__pyx_t_2 = ((__pyx_v_q > 1.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L9;
}
6199: # Then we only need to compute distance to circle C_B
+6200: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[(__pyx_v_jj + 1)]), (__pyx_v_lpolyy[(__pyx_v_jj + 1)]), __pyx_v_norm_dir2, __pyx_v_res_a);
6201: lpolyx[jj+1], lpolyy[jj+1],
6202: norm_dir2, res_a)
6203: else:
6204: # The we need to compute the radius (the height is Z_D)
6205: # of the circle in the same plane as the LOS and compute the
6206: # distance between the LOS and circle.
+6207: radius_z = q * (lpolyx[jj+1] - lpolyx[jj]) + lpolyx[jj]
/*else*/ {
__pyx_v_radius_z = ((__pyx_v_q * ((__pyx_v_lpolyx[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyx[__pyx_v_jj]))) + (__pyx_v_lpolyx[__pyx_v_jj]));
+6208: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, __pyx_v_radius_z, (__pyx_v_ray_orig[2]), __pyx_v_norm_dir2, __pyx_v_res_a);
6209: radius_z, ray_orig[2],
6210: norm_dir2, res_a)
+6211: if res_a[1] < _VSMALL:
__pyx_t_2 = (((__pyx_v_res_a[1]) < __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
}
}
__pyx_L9:;
6212: # The line is either tangent or intersects the frustum
6213: # we need to make the difference
+6214: k = res_a[0]
__pyx_v_k = (__pyx_v_res_a[0]);
6215: # we compute the ray from circle center to P
+6216: circle_tangent[0] = -ray_orig[0] - k * ray_vdir[0]
(__pyx_v_circle_tangent[0]) = ((-(__pyx_v_ray_orig[0])) - (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+6217: circle_tangent[1] = -ray_orig[1] - k * ray_vdir[1]
(__pyx_v_circle_tangent[1]) = ((-(__pyx_v_ray_orig[1])) - (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+6218: circle_tangent[2] = 0. # the line is horizontal
(__pyx_v_circle_tangent[2]) = 0.;
+6219: rdotvec = compute_dot_prod(circle_tangent, ray_vdir)
__pyx_v_rdotvec = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_circle_tangent, __pyx_v_ray_vdir);
+6220: if Cabs(rdotvec) > _VSMALL:
__pyx_t_2 = ((fabs(__pyx_v_rdotvec) > __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
}
6221: # There is an intersection, distance = Cnan
+6222: res_final[1] = Cnan # distance
(__pyx_v_res_final[1]) = NAN;
+6223: res_final[0] = Cnan # k
(__pyx_v_res_final[0]) = NAN;
6224: # no need to continue
+6225: return
goto __pyx_L0;
+6226: if (res_final[1] > res_a[1]
__pyx_t_5 = (((__pyx_v_res_final[1]) > (__pyx_v_res_a[1])) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L13_bool_binop_done;
}
/* … */
if (__pyx_t_2) {
/* … */
}
+6227: or (res_final[1] == res_a[1] and res_final[0] > res_a[0])):
__pyx_t_5 = (((__pyx_v_res_final[1]) == (__pyx_v_res_a[1])) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_res_final[0]) > (__pyx_v_res_a[0])) != 0);
__pyx_t_2 = __pyx_t_5;
__pyx_L13_bool_binop_done:;
+6228: res_final[0] = res_a[0] # k
(__pyx_v_res_final[0]) = (__pyx_v_res_a[0]);
+6229: res_final[1] = res_a[1] # distance
(__pyx_v_res_final[1]) = (__pyx_v_res_a[1]);
6230: else:
6231: # -- case with horizontal cone (aka cone is a plane annulus) ---
6232: # Then the shortest distance is the distance to the
6233: # outline circles
6234: # computing distance to cricle C_A of radius R_A and height Z_A
+6235: dist_los_circle_core(ray_vdir, ray_orig,
/*else*/ {
/* … */
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[__pyx_v_jj]), (__pyx_v_lpolyy[__pyx_v_jj]), __pyx_v_norm_dir2, __pyx_v_res_a);
6236: lpolyx[jj], lpolyy[jj],
6237: norm_dir2, res_a)
+6238: if res_a[1] < _VSMALL:
__pyx_t_2 = (((__pyx_v_res_a[1]) < __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
}
6239: # The line is either tangent or intersects the frustum
6240: # we need to make the difference
+6241: k = res_a[0]
__pyx_v_k = (__pyx_v_res_a[0]);
6242: # we compute the ray from circle center to P
+6243: circle_tangent[0] = -ray_orig[0] - k * ray_vdir[0]
(__pyx_v_circle_tangent[0]) = ((-(__pyx_v_ray_orig[0])) - (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+6244: circle_tangent[1] = -ray_orig[1] - k * ray_vdir[1]
(__pyx_v_circle_tangent[1]) = ((-(__pyx_v_ray_orig[1])) - (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+6245: circle_tangent[2] = 0. # the ray is horizontal
(__pyx_v_circle_tangent[2]) = 0.;
+6246: rdotvec = compute_dot_prod(circle_tangent, ray_vdir)
__pyx_v_rdotvec = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_circle_tangent, __pyx_v_ray_vdir);
+6247: if Cabs(rdotvec) > _VSMALL:
__pyx_t_2 = ((fabs(__pyx_v_rdotvec) > __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
}
6248: # There is an intersection, distance = Cnan
+6249: res_final[1] = Cnan # distance
(__pyx_v_res_final[1]) = NAN;
+6250: res_final[0] = Cnan # k
(__pyx_v_res_final[0]) = NAN;
6251: # no need to continue
+6252: return
goto __pyx_L0;
+6253: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[(__pyx_v_jj + 1)]), (__pyx_v_lpolyy[(__pyx_v_jj + 1)]), __pyx_v_norm_dir2, __pyx_v_res_b);
6254: lpolyx[jj+1], lpolyy[jj+1],
6255: norm_dir2, res_b)
+6256: if res_b[1] < _VSMALL:
__pyx_t_2 = (((__pyx_v_res_b[1]) < __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
}
6257: # The line is either tangent or intersects the frustum
6258: # we need to make the difference
+6259: k = res_b[0]
__pyx_v_k = (__pyx_v_res_b[0]);
6260: # we compute the ray from circle center to P
+6261: circle_tangent[0] = -ray_orig[0] - k * ray_vdir[0]
(__pyx_v_circle_tangent[0]) = ((-(__pyx_v_ray_orig[0])) - (__pyx_v_k * (__pyx_v_ray_vdir[0])));
+6262: circle_tangent[1] = -ray_orig[1] - k * ray_vdir[1]
(__pyx_v_circle_tangent[1]) = ((-(__pyx_v_ray_orig[1])) - (__pyx_v_k * (__pyx_v_ray_vdir[1])));
+6263: circle_tangent[2] = 0. # the ray is horizontal
(__pyx_v_circle_tangent[2]) = 0.;
+6264: rdotvec = compute_dot_prod(circle_tangent, ray_vdir)
__pyx_v_rdotvec = __pyx_f_4tofu_4geom_5_GG03_compute_dot_prod(__pyx_v_circle_tangent, __pyx_v_ray_vdir);
+6265: if Cabs(rdotvec) > _VSMALL:
__pyx_t_2 = ((fabs(__pyx_v_rdotvec) > __pyx_v_4tofu_4geom_5_GG03__VSMALL) != 0);
if (__pyx_t_2) {
/* … */
}
6266: # There is an intersection, distance = Cnan
+6267: res_final[1] = Cnan # distance
(__pyx_v_res_final[1]) = NAN;
+6268: res_final[0] = Cnan # k
(__pyx_v_res_final[0]) = NAN;
6269: # no need to continue
+6270: return
goto __pyx_L0;
6271: # The result is the one associated to the shortest distance
+6272: if (res_final[1] > res_a[1] or
__pyx_t_5 = (((__pyx_v_res_final[1]) > (__pyx_v_res_a[1])) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L21_bool_binop_done;
}
/* … */
if (__pyx_t_2) {
/* … */
}
+6273: (res_final[1] == res_a[1] and res_final[0] > res_a[0])):
__pyx_t_5 = (((__pyx_v_res_final[1]) == (__pyx_v_res_a[1])) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L21_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_res_final[0]) > (__pyx_v_res_a[0])) != 0);
__pyx_t_2 = __pyx_t_5;
__pyx_L21_bool_binop_done:;
+6274: res_final[0] = res_a[0] # k
(__pyx_v_res_final[0]) = (__pyx_v_res_a[0]);
+6275: res_final[1] = res_a[1] # distance
(__pyx_v_res_final[1]) = (__pyx_v_res_a[1]);
+6276: if (res_final[1] > res_b[1] or
__pyx_t_5 = (((__pyx_v_res_final[1]) > (__pyx_v_res_b[1])) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L25_bool_binop_done;
}
/* … */
if (__pyx_t_2) {
/* … */
}
}
__pyx_L8:;
}
+6277: (res_final[1] == res_b[1] and res_final[0] > res_b[0])):
__pyx_t_5 = (((__pyx_v_res_final[1]) == (__pyx_v_res_b[1])) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L25_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_res_final[0]) > (__pyx_v_res_b[0])) != 0);
__pyx_t_2 = __pyx_t_5;
__pyx_L25_bool_binop_done:;
+6278: res_final[0] = res_b[0] # k
(__pyx_v_res_final[0]) = (__pyx_v_res_b[0]);
+6279: res_final[1] = res_b[1] # distance
(__pyx_v_res_final[1]) = (__pyx_v_res_b[1]);
6280: else:
6281: # == More general non-horizontal semi-line case ========================
+6282: for jj in range(nvert-1):
/*else*/ {
__pyx_t_3 = (__pyx_v_nvert - 1);
__pyx_t_4 = __pyx_t_3;
for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
__pyx_v_jj = __pyx_t_1;
+6283: v0 = lpolyx[jj+1]-lpolyx[jj]
__pyx_v_v0 = ((__pyx_v_lpolyx[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyx[__pyx_v_jj]));
+6284: v1 = lpolyy[jj+1]-lpolyy[jj]
__pyx_v_v1 = ((__pyx_v_lpolyy[(__pyx_v_jj + 1)]) - (__pyx_v_lpolyy[__pyx_v_jj]));
+6285: val_a = v0 * v0 - upar2 * v1 * invuz * v1 * invuz
__pyx_v_val_a = ((__pyx_v_v0 * __pyx_v_v0) - ((((__pyx_v_upar2 * __pyx_v_v1) * __pyx_v_invuz) * __pyx_v_v1) * __pyx_v_invuz));
6286: val_b = lpolyx[jj] * v0 + v1 * (ray_orig[2] - lpolyy[jj]) * upar2 *\
+6287: invuz * invuz - upscaDp * v1 * invuz
__pyx_v_val_b = ((((__pyx_v_lpolyx[__pyx_v_jj]) * __pyx_v_v0) + ((((__pyx_v_v1 * ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_upar2) * __pyx_v_invuz) * __pyx_v_invuz)) - ((__pyx_v_upscaDp * __pyx_v_v1) * __pyx_v_invuz));
6288: coeff = - upar2 * (ray_orig[2] - lpolyy[jj])**2 * invuz * invuz +\
6289: 2. * upscaDp * (ray_orig[2]-lpolyy[jj]) * invuz -\
+6290: dpar2 + lpolyx[jj] * lpolyx[jj]
__pyx_v_coeff = (((((((-__pyx_v_upar2) * pow(((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj])), 2.0)) * __pyx_v_invuz) * __pyx_v_invuz) + (((2. * __pyx_v_upscaDp) * ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz)) - __pyx_v_dpar2) + ((__pyx_v_lpolyx[__pyx_v_jj]) * (__pyx_v_lpolyx[__pyx_v_jj])));
+6291: if (val_a * val_a < eps_a * eps_a):
__pyx_t_2 = (((__pyx_v_val_a * __pyx_v_val_a) < (__pyx_v_eps_a * __pyx_v_eps_a)) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L30;
}
+6292: if (val_b * val_b < eps_b * eps_b):
__pyx_t_2 = (((__pyx_v_val_b * __pyx_v_val_b) < (__pyx_v_eps_b * __pyx_v_eps_b)) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L31;
}
6293: # let's see if C is 0 or not
+6294: if coeff * coeff < eps_a * eps_a :
__pyx_t_2 = (((__pyx_v_coeff * __pyx_v_coeff) < (__pyx_v_eps_a * __pyx_v_eps_a)) != 0);
if (__pyx_t_2) {
/* … */
}
6295: # then LOS included in cone and then we can choose point
6296: # such that q = 0, k = (z_A - z_D) / uz
+6297: res_a[0] = (lpolyy[jj] - ray_orig[2]) * invuz
(__pyx_v_res_a[0]) = (((__pyx_v_lpolyy[__pyx_v_jj]) - (__pyx_v_ray_orig[2])) * __pyx_v_invuz);
+6298: res_a[1] = 0 # distance = 0 since LOS in cone
(__pyx_v_res_a[1]) = 0.0;
6299: else: # (val_b * val_b > eps_b * eps_b):
+6300: q = -coeff / (2. * val_b)
/*else*/ {
__pyx_v_q = ((-__pyx_v_coeff) / (2. * __pyx_v_val_b));
+6301: if q < 0. :
__pyx_t_2 = ((__pyx_v_q < 0.) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L33;
}
6302: # Then we only need to compute distance to circle C_A
+6303: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[__pyx_v_jj]), (__pyx_v_lpolyy[__pyx_v_jj]), __pyx_v_norm_dir2, __pyx_v_res_a);
6304: lpolyx[jj], lpolyy[jj],
6305: norm_dir2, res_a)
+6306: elif q > 1:
__pyx_t_2 = ((__pyx_v_q > 1.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L33;
}
6307: # Then we only need to compute distance to circle C_B
+6308: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[(__pyx_v_jj + 1)]), (__pyx_v_lpolyy[(__pyx_v_jj + 1)]), __pyx_v_norm_dir2, __pyx_v_res_a);
6309: lpolyx[jj+1], lpolyy[jj+1],
6310: norm_dir2, res_a)
6311: else :
+6312: k = (q * v1 - (ray_orig[2] - lpolyy[jj])) * invuz
/*else*/ {
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz);
+6313: if k >= 0.:
__pyx_t_2 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_2) {
/* … */
}
6314: # Then there is an intersection
+6315: res_final[0] = Cnan
(__pyx_v_res_final[0]) = NAN;
+6316: res_final[1] = Cnan
(__pyx_v_res_final[1]) = NAN;
+6317: return # no need to move forward
goto __pyx_L0;
6318: else:
6319: # The closest point on the line is the LOS origin
+6320: res_a[0] = 0
/*else*/ {
(__pyx_v_res_a[0]) = 0.0;
+6321: res_a[1] = -k * Csqrt(norm_dir2)
(__pyx_v_res_a[1]) = ((-__pyx_v_k) * sqrt(__pyx_v_norm_dir2));
}
}
__pyx_L33:;
}
__pyx_L31:;
+6322: if (res_final[1] > res_a[1]
__pyx_t_5 = (((__pyx_v_res_final[1]) > (__pyx_v_res_a[1])) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L36_bool_binop_done;
}
/* … */
if (__pyx_t_2) {
/* … */
}
+6323: or (res_final[1] == res_a[1] and res_final[0] > res_a[0])):
__pyx_t_5 = (((__pyx_v_res_final[1]) == (__pyx_v_res_a[1])) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L36_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_res_final[0]) > (__pyx_v_res_a[0])) != 0);
__pyx_t_2 = __pyx_t_5;
__pyx_L36_bool_binop_done:;
+6324: res_final[0] = res_a[0] # k
(__pyx_v_res_final[0]) = (__pyx_v_res_a[0]);
+6325: res_final[1] = res_a[1] # distance
(__pyx_v_res_final[1]) = (__pyx_v_res_a[1]);
+6326: elif (val_b * val_b >= val_a * coeff):
__pyx_t_2 = (((__pyx_v_val_b * __pyx_v_val_b) >= (__pyx_v_val_a * __pyx_v_coeff)) != 0);
if (__pyx_t_2) {
/* … */
}
__pyx_L30:;
}
}
__pyx_L5:;
+6327: sqd = Csqrt(val_b * val_b - val_a * coeff)
__pyx_v_sqd = sqrt(((__pyx_v_val_b * __pyx_v_val_b) - (__pyx_v_val_a * __pyx_v_coeff)));
6328: # First solution
+6329: q = (-val_b + sqd) / val_a
__pyx_v_q = (((-__pyx_v_val_b) + __pyx_v_sqd) / __pyx_v_val_a);
+6330: if q < 0:
__pyx_t_2 = ((__pyx_v_q < 0.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L39;
}
6331: # Then we only need to compute distance to circle C_A
+6332: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[__pyx_v_jj]), (__pyx_v_lpolyy[__pyx_v_jj]), __pyx_v_norm_dir2, __pyx_v_res_a);
6333: lpolyx[jj], lpolyy[jj],
6334: norm_dir2, res_a)
+6335: elif q > 1:
__pyx_t_2 = ((__pyx_v_q > 1.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L39;
}
6336: # Then we only need to compute distance to circle C_B
+6337: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[(__pyx_v_jj + 1)]), (__pyx_v_lpolyy[(__pyx_v_jj + 1)]), __pyx_v_norm_dir2, __pyx_v_res_a);
6338: lpolyx[jj+1], lpolyy[jj+1],
6339: norm_dir2, res_a)
6340: else :
+6341: k = (q * v1 - (ray_orig[2] - lpolyy[jj])) * invuz
/*else*/ {
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz);
+6342: if k >= 0.:
__pyx_t_2 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_2) {
/* … */
}
6343: # There is an intersection
+6344: res_final[0] = Cnan
(__pyx_v_res_final[0]) = NAN;
+6345: res_final[1] = Cnan
(__pyx_v_res_final[1]) = NAN;
+6346: return # no need to continue
goto __pyx_L0;
6347: else:
6348: # The closest point on the LOS is its origin
+6349: res_a[0] = 0
/*else*/ {
(__pyx_v_res_a[0]) = 0.0;
+6350: res_a[1] = -k * Csqrt(norm_dir2)
(__pyx_v_res_a[1]) = ((-__pyx_v_k) * sqrt(__pyx_v_norm_dir2));
}
}
__pyx_L39:;
+6351: if (res_final[1] > res_a[1]
__pyx_t_5 = (((__pyx_v_res_final[1]) > (__pyx_v_res_a[1])) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L42_bool_binop_done;
}
/* … */
if (__pyx_t_2) {
/* … */
}
+6352: or (res_final[1] == res_a[1] and res_final[0] > res_a[0])):
__pyx_t_5 = (((__pyx_v_res_final[1]) == (__pyx_v_res_a[1])) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L42_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_res_final[0]) > (__pyx_v_res_a[0])) != 0);
__pyx_t_2 = __pyx_t_5;
__pyx_L42_bool_binop_done:;
+6353: res_final[0] = res_a[0] # k
(__pyx_v_res_final[0]) = (__pyx_v_res_a[0]);
+6354: res_final[1] = res_a[1] # distance
(__pyx_v_res_final[1]) = (__pyx_v_res_a[1]);
6355: # Second solution
+6356: q = (-val_b - sqd) / val_a
__pyx_v_q = (((-__pyx_v_val_b) - __pyx_v_sqd) / __pyx_v_val_a);
+6357: if q < 0:
__pyx_t_2 = ((__pyx_v_q < 0.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L45;
}
6358: # Then we only need to compute distance to circle C_A
+6359: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[__pyx_v_jj]), (__pyx_v_lpolyy[__pyx_v_jj]), __pyx_v_norm_dir2, __pyx_v_res_b);
6360: lpolyx[jj], lpolyy[jj],
6361: norm_dir2, res_b)
+6362: elif q > 1:
__pyx_t_2 = ((__pyx_v_q > 1.0) != 0);
if (__pyx_t_2) {
/* … */
goto __pyx_L45;
}
6363: # Then we only need to compute distance to circle C_B
+6364: dist_los_circle_core(ray_vdir, ray_orig,
__pyx_f_4tofu_4geom_5_GG03_dist_los_circle_core(__pyx_v_ray_vdir, __pyx_v_ray_orig, (__pyx_v_lpolyx[(__pyx_v_jj + 1)]), (__pyx_v_lpolyy[(__pyx_v_jj + 1)]), __pyx_v_norm_dir2, __pyx_v_res_b);
6365: lpolyx[jj+1], lpolyy[jj+1],
6366: norm_dir2, res_b)
6367: else:
+6368: k = (q * v1 - (ray_orig[2] - lpolyy[jj])) * invuz
/*else*/ {
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((__pyx_v_ray_orig[2]) - (__pyx_v_lpolyy[__pyx_v_jj]))) * __pyx_v_invuz);
+6369: if k>=0.:
__pyx_t_2 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_2) {
/* … */
}
6370: # there is an intersection
+6371: res_final[0] = Cnan
(__pyx_v_res_final[0]) = NAN;
+6372: res_final[1] = Cnan
(__pyx_v_res_final[1]) = NAN;
+6373: return # no need to continue
goto __pyx_L0;
6374: else:
6375: # The closest point on the LOS is its origin
+6376: res_b[0] = 0
/*else*/ {
(__pyx_v_res_b[0]) = 0.0;
+6377: res_b[1] = -k * Csqrt(norm_dir2)
(__pyx_v_res_b[1]) = ((-__pyx_v_k) * sqrt(__pyx_v_norm_dir2));
}
}
__pyx_L45:;
+6378: if (res_final[1] > res_b[1]
__pyx_t_5 = (((__pyx_v_res_final[1]) > (__pyx_v_res_b[1])) != 0);
if (!__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L48_bool_binop_done;
}
/* … */
if (__pyx_t_2) {
/* … */
}
+6379: or (res_final[1] == res_b[1] and res_final[0] > res_b[0])):
__pyx_t_5 = (((__pyx_v_res_final[1]) == (__pyx_v_res_b[1])) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_2 = __pyx_t_5;
goto __pyx_L48_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_res_final[0]) > (__pyx_v_res_b[0])) != 0);
__pyx_t_2 = __pyx_t_5;
__pyx_L48_bool_binop_done:;
+6380: res_final[0] = res_b[0]
(__pyx_v_res_final[0]) = (__pyx_v_res_b[0]);
+6381: res_final[1] = res_b[1]
(__pyx_v_res_final[1]) = (__pyx_v_res_b[1]);
+6382: res_final[0] = res_final[0] / norm_dir2_ori
(__pyx_v_res_final[0]) = ((__pyx_v_res_final[0]) / __pyx_v_norm_dir2_ori);
+6383: return
goto __pyx_L0;
6384:
6385:
6386: # ==============================================================================
6387: #
6388: # ARE LOS AND EXT-POLY CLOSE
6389: #
6390: # ==============================================================================
6391:
+6392: def is_close_los_vpoly_vec(int nvpoly, int nlos,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_77is_close_los_vpoly_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_76is_close_los_vpoly_vec[] = "\n This function tests if the distance between num_los Rays (or LOS) and\n several `IN` structures (polygons extruded around the axis (0,0,1),\n eg. flux surfaces) is smaller than `epsilon`.\n For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO\n\n Params\n ======\n nvpoly : int\n Number of flux surfaces\n nlos : int\n Number of LOS\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS normalized direction vector\n ves_poly : (num_pol, 2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the different IN surfaces\n WARNING : we suppose all poly are nested in each other,\n and the first one is the smallest one\n epsilon : double\n Value for testing if distance < epsilon\n eps_<val> : double\n Small value, acceptance of error\n Returns\n =======\n are_close : (npoly * num_los) bool array\n `are_close[i * num_poly + j]` indicates if distance between i-th LOS and\n j-th poly are closer than epsilon. (True if distance<epsilon)\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `is_close_los_vpoly_vec_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_77is_close_los_vpoly_vec = {"is_close_los_vpoly_vec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_77is_close_los_vpoly_vec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_76is_close_los_vpoly_vec};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_77is_close_los_vpoly_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_nvpoly;
int __pyx_v_nlos;
PyArrayObject *__pyx_v_ray_orig = 0;
PyArrayObject *__pyx_v_ray_vdir = 0;
PyArrayObject *__pyx_v_ves_poly = 0;
double __pyx_v_epsilon;
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
double __pyx_v_eps_plane;
PyObject *__pyx_v_ves_type = 0;
PyObject *__pyx_v_algo_type = 0;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_vpoly_vec (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nvpoly,&__pyx_n_s_nlos,&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_epsilon,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_algo_type,&__pyx_n_s_num_threads,0};
PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
values[11] = ((PyObject*)__pyx_n_s_Tor);
values[12] = ((PyObject*)__pyx_n_s_simple);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nvpoly)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlos)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_vpoly_vec", 0, 6, 14, 1); __PYX_ERR(0, 6392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_vpoly_vec", 0, 6, 14, 2); __PYX_ERR(0, 6392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_vpoly_vec", 0, 6, 14, 3); __PYX_ERR(0, 6392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_vpoly_vec", 0, 6, 14, 4); __PYX_ERR(0, 6392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("is_close_los_vpoly_vec", 0, 6, 14, 5); __PYX_ERR(0, 6392, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_algo_type);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[13] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "is_close_los_vpoly_vec") < 0)) __PYX_ERR(0, 6392, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_nvpoly = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nvpoly == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6392, __pyx_L3_error)
__pyx_v_nlos = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nlos == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6392, __pyx_L3_error)
__pyx_v_ray_orig = ((PyArrayObject *)values[2]);
__pyx_v_ray_vdir = ((PyArrayObject *)values[3]);
__pyx_v_ves_poly = ((PyArrayObject *)values[4]);
__pyx_v_epsilon = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_epsilon == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6396, __pyx_L3_error)
if (values[6]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6397, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__103;
}
if (values[7]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6397, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__104;
}
if (values[8]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6398, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__105;
}
if (values[9]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6398, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__106;
}
if (values[10]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6399, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__107;
}
__pyx_v_ves_type = ((PyObject*)values[11]);
__pyx_v_algo_type = ((PyObject*)values[12]);
if (values[13]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[13]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6400, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("is_close_los_vpoly_vec", 0, 6, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6392, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.is_close_los_vpoly_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_orig), __pyx_ptype_5numpy_ndarray, 1, "ray_orig", 0))) __PYX_ERR(0, 6393, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_vdir), __pyx_ptype_5numpy_ndarray, 1, "ray_vdir", 0))) __PYX_ERR(0, 6394, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_poly), __pyx_ptype_5numpy_ndarray, 1, "ves_poly", 0))) __PYX_ERR(0, 6395, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 6399, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_algo_type), (&PyString_Type), 1, "algo_type", 1))) __PYX_ERR(0, 6400, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_76is_close_los_vpoly_vec(__pyx_self, __pyx_v_nvpoly, __pyx_v_nlos, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_epsilon, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_v_num_threads);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_76is_close_los_vpoly_vec(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nvpoly, int __pyx_v_nlos, PyArrayObject *__pyx_v_ray_orig, PyArrayObject *__pyx_v_ray_vdir, PyArrayObject *__pyx_v_ves_poly, double __pyx_v_epsilon, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, int __pyx_v_num_threads) {
PyObject *__pyx_v_warn = NULL;
arrayobject *__pyx_v_are_close = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_orig;
__Pyx_Buffer __pyx_pybuffer_ray_orig;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_vdir;
__Pyx_Buffer __pyx_pybuffer_ray_vdir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ves_poly;
__Pyx_Buffer __pyx_pybuffer_ves_poly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_vpoly_vec", 0);
__pyx_pybuffer_ray_orig.pybuffer.buf = NULL;
__pyx_pybuffer_ray_orig.refcount = 0;
__pyx_pybuffernd_ray_orig.data = NULL;
__pyx_pybuffernd_ray_orig.rcbuffer = &__pyx_pybuffer_ray_orig;
__pyx_pybuffer_ray_vdir.pybuffer.buf = NULL;
__pyx_pybuffer_ray_vdir.refcount = 0;
__pyx_pybuffernd_ray_vdir.data = NULL;
__pyx_pybuffernd_ray_vdir.rcbuffer = &__pyx_pybuffer_ray_vdir;
__pyx_pybuffer_ves_poly.pybuffer.buf = NULL;
__pyx_pybuffer_ves_poly.refcount = 0;
__pyx_pybuffernd_ves_poly.data = NULL;
__pyx_pybuffernd_ves_poly.rcbuffer = &__pyx_pybuffer_ves_poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_orig, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6392, __pyx_L1_error)
}
__pyx_pybuffernd_ray_orig.diminfo[0].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_orig.diminfo[0].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_orig.diminfo[1].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_orig.diminfo[1].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_vdir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6392, __pyx_L1_error)
}
__pyx_pybuffernd_ray_vdir.diminfo[0].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_vdir.diminfo[0].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_vdir.diminfo[1].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_vdir.diminfo[1].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_ves_poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 3, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6392, __pyx_L1_error)
}
__pyx_pybuffernd_ves_poly.diminfo[0].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ves_poly.diminfo[0].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ves_poly.diminfo[1].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ves_poly.diminfo[1].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_ves_poly.diminfo[2].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_ves_poly.diminfo[2].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[2];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_4, 1);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_7);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_10);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.is_close_los_vpoly_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF((PyObject *)__pyx_v_are_close);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__234 = PyTuple_Pack(16, __pyx_n_s_nvpoly, __pyx_n_s_nlos, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_epsilon, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_algo_type, __pyx_n_s_num_threads, __pyx_n_s_warn, __pyx_n_s_are_close); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(0, 6392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__234);
__Pyx_GIVEREF(__pyx_tuple__234);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_77is_close_los_vpoly_vec, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6392, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_is_close_los_vpoly_vec, __pyx_t_2) < 0) __PYX_ERR(0, 6392, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(14, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_is_close_los_vpoly_vec, 6392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(0, 6392, __pyx_L1_error)
6393: np.ndarray[double,ndim=2,mode='c'] ray_orig,
6394: np.ndarray[double,ndim=2,mode='c'] ray_vdir,
6395: np.ndarray[double,ndim=3,mode='c'] ves_poly,
6396: double epsilon,
+6397: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__103 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__104 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+6398: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__105 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__106 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+6399: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__107 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
6400: str algo_type='simple', int num_threads=16):
6401: """
6402: This function tests if the distance between num_los Rays (or LOS) and
6403: several `IN` structures (polygons extruded around the axis (0,0,1),
6404: eg. flux surfaces) is smaller than `epsilon`.
6405: For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO
6406:
6407: Params
6408: ======
6409: nvpoly : int
6410: Number of flux surfaces
6411: nlos : int
6412: Number of LOS
6413: ray_orig : (3, num_los) double array
6414: LOS origin points coordinates
6415: ray_vdir : (3, num_los) double array
6416: LOS normalized direction vector
6417: ves_poly : (num_pol, 2, num_vertex) double array
6418: Coordinates of the vertices of the Polygon defining the 2D poloidal
6419: cut of the different IN surfaces
6420: WARNING : we suppose all poly are nested in each other,
6421: and the first one is the smallest one
6422: epsilon : double
6423: Value for testing if distance < epsilon
6424: eps_<val> : double
6425: Small value, acceptance of error
6426: Returns
6427: =======
6428: are_close : (npoly * num_los) bool array
6429: `are_close[i * num_poly + j]` indicates if distance between i-th LOS and
6430: j-th poly are closer than epsilon. (True if distance<epsilon)
6431: ---
6432: This is the PYTHON function, use only if you need this computation from
6433: Python, if you need it from Cython, use `is_close_los_vpoly_vec_core`
6434: """
+6435: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6436: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__108, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6436, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__108 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__108)) __PYX_ERR(0, 6436, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__108); __Pyx_GIVEREF(__pyx_tuple__108);
6437: Warning)
6438:
+6439: cdef array are_close = clone(array('i'), nvpoly*nlos, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), (__pyx_v_nvpoly * __pyx_v_nlos), 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6439, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_are_close = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
+6440: is_close_los_vpoly_vec_core(nvpoly, nlos,
__pyx_t_5.__pyx_n = 1; __pyx_t_5.num_threads = __pyx_v_num_threads; __pyx_f_4tofu_4geom_5_GG03_is_close_los_vpoly_vec_core(__pyx_v_nvpoly, __pyx_v_nlos, ((double *)__pyx_v_ray_orig->data), ((double *)__pyx_v_ray_vdir->data), __pyx_t_3, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_v_epsilon, __pyx_t_4, &__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1); __pyx_t_3.memview = NULL; __pyx_t_3.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_4, 1); __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
6441: <double*>ray_orig.data,
6442: <double*>ray_vdir.data,
+6443: ves_poly,
__pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(((PyObject *)__pyx_v_ves_poly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 6443, __pyx_L1_error)
6444: eps_uz, eps_a,
6445: eps_vz, eps_b,
6446: eps_plane,
6447: ves_type,
6448: algo_type,
6449: epsilon,
+6450: are_close,
__pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_are_close), PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 6450, __pyx_L1_error)
6451: num_threads)
+6452: return np.asarray(are_close, dtype=bool).reshape(nlos, nvpoly)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(((PyObject *)__pyx_v_are_close)); __Pyx_GIVEREF(((PyObject *)__pyx_v_are_close)); PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_are_close)); __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 6452, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_reshape); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nlos); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nvpoly); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = NULL; __pyx_t_9 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_7, function); __pyx_t_9 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_8, __pyx_t_2}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_8, __pyx_t_2}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } else #endif { __pyx_t_10 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_10); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_2); __pyx_t_8 = 0; __pyx_t_2 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; } __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6453:
6454:
+6455: cdef void is_close_los_vpoly_vec_core(int num_poly, int nlos,
static void __pyx_f_4tofu_4geom_5_GG03_is_close_los_vpoly_vec_core(int __pyx_v_num_poly, CYTHON_UNUSED int __pyx_v_nlos, double *__pyx_v_ray_orig, double *__pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, CYTHON_UNUSED double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, double __pyx_v_epsilon, __Pyx_memviewslice __pyx_v_are_close, struct __pyx_opt_args_4tofu_4geom_5_GG03_is_close_los_vpoly_vec_core *__pyx_optional_args) {
int __pyx_v_i;
int __pyx_v_ind_los;
int __pyx_v_ind_pol;
int __pyx_v_npts_poly;
double *__pyx_v_loc_res;
double *__pyx_v_loc_dir;
double *__pyx_v_loc_org;
double __pyx_v_crit2;
double __pyx_v_invuz;
double __pyx_v_dpar2;
double __pyx_v_upar2;
double __pyx_v_upscaDp;
double __pyx_v_crit2_base;
PyObject *__pyx_v_warn = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("is_close_los_vpoly_vec_core", 0);
if (__pyx_optional_args) {
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
__Pyx_WriteUnraisable("tofu.geom._GG03.is_close_los_vpoly_vec_core", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_RefNannyFinishContext();
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_is_close_los_vpoly_vec_core {
int __pyx_n;
int num_threads;
};
6456: double* ray_orig,
6457: double* ray_vdir,
6458: double[:,:,::1] ves_poly,
6459: double eps_uz,
6460: double eps_a,
6461: double eps_vz,
6462: double eps_b,
6463: double eps_plane,
6464: str ves_type,
6465: str algo_type,
6466: double epsilon,
6467: int[::1] are_close,
6468: int num_threads=16):
6469: """
6470: This function computes the distance (and the associated k) between nlos
6471: Rays (or LOS) and several `IN` structures (polygons extruded around the axis
6472: (0,0,1), eg. flux surfaces).
6473: For more details on the algorithm please see PDF: <name_of_pdf>.pdf #TODO
6474:
6475: Params
6476: ======
6477: num_poly : int
6478: Number of flux surfaces
6479: nlos : int
6480: Number of LOS
6481: ray_orig : (3, nlos) double array
6482: LOS origin points coordinates
6483: ray_vdir : (3, nlos) double array
6484: LOS normalized direction vector
6485: ves_poly : (num_pol, 2, num_vertex) double array
6486: Coordinates of the vertices of the Polygon defining the 2D poloidal
6487: cut of the different IN surfaces.
6488: WARNING : we suppose all poly are nested in each other,
6489: and the first one is the smallest one
6490: epsilon : double
6491: Value for testing if distance < epsilon
6492: eps_<val> : double
6493: Small value, acceptance of error
6494: Returns
6495: =======
6496: are_close : (npoly * num_los) bool array
6497: `are_close[i * num_poly + j]` indicates if distance between i-th LOS
6498: and j-th poly are closer than epsilon. (True if distance<epsilon)
6499: ---
6500: This is the CYTHON function, use only if you need this computation from
6501: Cython, if you need it from Python, use `comp_dist_los_vpoly_vec`
6502: """
6503: cdef int i, ind_los, ind_pol, ind_pol2
6504: cdef int npts_poly
6505: cdef double* loc_res
6506: cdef double* loc_dir
6507: cdef double* loc_org
6508: cdef double* lpolyx
6509: cdef double* lpolyy
6510: cdef double crit2, invuz, dpar2, upar2, upscaDp
+6511: cdef double crit2_base = eps_uz * eps_uz /400.
__pyx_v_crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
6512:
+6513: if not algo_type.lower() == "simple" or not ves_type.lower() == "tor":
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_algo_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_simple, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6513, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((!__pyx_t_3) != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 6513, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+6514: assert False, "The function is only implemented with the simple"\
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
+6515: + " algorithm and for toroidal vessels... Sorry!"
__pyx_t_2 = PyNumber_Add(__pyx_kp_s_The_function_is_only_implemented, __pyx_kp_s_algorithm_and_for_toroidal_vess); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); PyErr_SetObject(PyExc_AssertionError, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 6514, __pyx_L1_error) } } #endif
+6516: from warnings import warn
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_warn); __pyx_t_5 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_2, -1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6516, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v_warn = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6517: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__109, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__109 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 6517, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__109); __Pyx_GIVEREF(__pyx_tuple__109);
6518: Warning)
6519:
6520: # == Defining parallel part ================================================
+6521: with nogil, parallel():
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_loc_res)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_loc_dir = ((double *)1);
__pyx_v_loc_org = ((double *)1);
__pyx_v_loc_res = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L8;
}
__pyx_L7_error: {
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L1_error;
}
__pyx_L8:;
}
}
6522: # We use local arrays for each thread so...
+6523: loc_dir = <double*>malloc(3*sizeof(double))
__pyx_v_loc_dir = ((double *)malloc((3 * (sizeof(double)))));
+6524: loc_org = <double*>malloc(3*sizeof(double))
__pyx_v_loc_org = ((double *)malloc((3 * (sizeof(double)))));
+6525: loc_res = <double*>malloc(2*sizeof(double))
__pyx_v_loc_res = ((double *)malloc((2 * (sizeof(double)))));
6526: # == The parallelization over the LOS ==================================
+6527: for ind_los in prange(nlos, schedule='dynamic'):
__pyx_t_6 = __pyx_v_nlos;
if (1 == 0) abort();
{
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_crit2) lastprivate(__pyx_v_dpar2) lastprivate(__pyx_v_i) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_pol) lastprivate(__pyx_v_invuz) lastprivate(__pyx_v_npts_poly) lastprivate(__pyx_v_upar2) lastprivate(__pyx_v_upscaDp) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_crit2 = ((double)__PYX_NAN());
__pyx_v_dpar2 = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_ind_pol = ((int)0xbad0bad0);
__pyx_v_invuz = ((double)__PYX_NAN());
__pyx_v_npts_poly = ((int)0xbad0bad0);
__pyx_v_upar2 = ((double)__PYX_NAN());
__pyx_v_upscaDp = ((double)__PYX_NAN());
+6528: for i in range(3):
for (__pyx_t_9 = 0; __pyx_t_9 < 3; __pyx_t_9+=1) {
__pyx_v_i = __pyx_t_9;
+6529: loc_dir[i] = ray_vdir[ind_los * 3 + i]
(__pyx_v_loc_dir[__pyx_v_i]) = (__pyx_v_ray_vdir[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
+6530: loc_org[i] = ray_orig[ind_los * 3 + i]
(__pyx_v_loc_org[__pyx_v_i]) = (__pyx_v_ray_orig[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
}
6531: # -- Computing values that depend on the LOS/ray -------------------
+6532: upscaDp = loc_dir[0]*loc_org[0] + loc_dir[1]*loc_org[1]
__pyx_v_upscaDp = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_org[1])));
+6533: upar2 = loc_dir[0]*loc_dir[0] + loc_dir[1]*loc_dir[1]
__pyx_v_upar2 = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_dir[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_dir[1])));
+6534: dpar2 = loc_org[0]*loc_org[0] + loc_org[1]*loc_org[1]
__pyx_v_dpar2 = (((__pyx_v_loc_org[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_org[1]) * (__pyx_v_loc_org[1])));
+6535: invuz = 1./loc_dir[2]
__pyx_v_invuz = (1. / (__pyx_v_loc_dir[2]));
+6536: crit2 = upar2*crit2_base
__pyx_v_crit2 = (__pyx_v_upar2 * __pyx_v_crit2_base);
6537: # -- Looping over each flux surface---------------------------------
+6538: for ind_pol in range(num_poly):
__pyx_t_9 = __pyx_v_num_poly;
__pyx_t_10 = __pyx_t_9;
for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
__pyx_v_ind_pol = __pyx_t_11;
+6539: npts_poly = ves_poly[ind_pol].shape[1]
__pyx_t_12.data = __pyx_v_ves_poly.data;
__pyx_t_12.memview = __pyx_v_ves_poly.memview;
__PYX_INC_MEMVIEW(&__pyx_t_12, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_ind_pol;
Py_ssize_t __pyx_tmp_stride = __pyx_v_ves_poly.strides[0];
if ((0)) __PYX_ERR(0, 6539, __pyx_L15_error)
__pyx_t_12.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_12.shape[0] = __pyx_v_ves_poly.shape[1];
__pyx_t_12.strides[0] = __pyx_v_ves_poly.strides[1];
__pyx_t_12.suboffsets[0] = -1;
__pyx_t_12.shape[1] = __pyx_v_ves_poly.shape[2];
__pyx_t_12.strides[1] = __pyx_v_ves_poly.strides[2];
__pyx_t_12.suboffsets[1] = -1;
__pyx_v_npts_poly = (__pyx_t_12.shape[1]);
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
__pyx_t_12.memview = NULL;
__pyx_t_12.data = NULL;
+6540: simple_dist_los_vpoly_core(loc_org, loc_dir,
__pyx_f_4tofu_4geom_5_GG03_simple_dist_los_vpoly_core(__pyx_v_loc_org, __pyx_v_loc_dir, (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_13 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_14 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_15)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_16 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_17 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_18)) )))), __pyx_v_npts_poly, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_loc_res);
+6541: &ves_poly[ind_pol][0][0],
__pyx_t_13 = __pyx_v_ind_pol;
__pyx_t_14 = 0;
__pyx_t_15 = 0;
+6542: &ves_poly[ind_pol][1][0],
__pyx_t_16 = __pyx_v_ind_pol;
__pyx_t_17 = 1;
__pyx_t_18 = 0;
6543: npts_poly, upscaDp,
6544: upar2, dpar2,
6545: invuz, crit2,
6546: eps_uz, eps_vz,
6547: eps_a, eps_b,
6548: loc_res)
+6549: if loc_res[1] < epsilon:
__pyx_t_1 = (((__pyx_v_loc_res[1]) < __pyx_v_epsilon) != 0);
if (__pyx_t_1) {
/* … */
goto __pyx_L21;
}
+6550: are_close[ind_los * num_poly + ind_pol] = 1
__pyx_t_19 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol);
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_are_close.data) + __pyx_t_19)) )) = 1;
+6551: elif loc_res[1] == loc_res[1]: # is nan
__pyx_t_1 = (((__pyx_v_loc_res[1]) == (__pyx_v_loc_res[1])) != 0);
if (__pyx_t_1) {
/* … */
}
__pyx_L21:;
__pyx_L19_continue:;
}
goto __pyx_L23;
__pyx_L15_error:;
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_exc_type)
#endif /* _OPENMP */
if (!__pyx_parallel_exc_type) {
__Pyx_ErrFetchWithState(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb);
__pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno;
__Pyx_GOTREF(__pyx_parallel_exc_type);
}
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
__pyx_parallel_why = 4;
goto __pyx_L22;
__pyx_L22:;
#ifdef _OPENMP
#pragma omp critical(__pyx_parallel_lastprivates1)
#endif /* _OPENMP */
{
__pyx_parallel_temp0 = __pyx_v_crit2;
__pyx_parallel_temp1 = __pyx_v_dpar2;
__pyx_parallel_temp2 = __pyx_v_i;
__pyx_parallel_temp3 = __pyx_v_ind_los;
__pyx_parallel_temp4 = __pyx_v_ind_pol;
__pyx_parallel_temp5 = __pyx_v_invuz;
__pyx_parallel_temp6 = __pyx_v_npts_poly;
__pyx_parallel_temp7 = __pyx_v_upar2;
__pyx_parallel_temp8 = __pyx_v_upscaDp;
}
__pyx_L23:;
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_why)
#endif /* _OPENMP */
}
}
}
if (__pyx_parallel_exc_type) {
/* This may have been overridden by a continue, break or return in another thread. Prefer the error. */
__pyx_parallel_why = 4;
}
if (__pyx_parallel_why) {
__pyx_v_crit2 = __pyx_parallel_temp0;
__pyx_v_dpar2 = __pyx_parallel_temp1;
__pyx_v_i = __pyx_parallel_temp2;
__pyx_v_ind_los = __pyx_parallel_temp3;
__pyx_v_ind_pol = __pyx_parallel_temp4;
__pyx_v_invuz = __pyx_parallel_temp5;
__pyx_v_npts_poly = __pyx_parallel_temp6;
__pyx_v_upar2 = __pyx_parallel_temp7;
__pyx_v_upscaDp = __pyx_parallel_temp8;
switch (__pyx_parallel_why) {
case 4:
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
__Pyx_GIVEREF(__pyx_parallel_exc_type);
__Pyx_ErrRestoreWithState(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb);
__pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno;
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
goto __pyx_L11_error;
}
}
}
+6552: continue
goto __pyx_L19_continue;
+6553: free(loc_dir)
free(__pyx_v_loc_dir);
+6554: free(loc_org)
free(__pyx_v_loc_org);
+6555: free(loc_res)
free(__pyx_v_loc_res);
goto __pyx_L25;
__pyx_L11_error:;
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_exc_type)
#endif /* _OPENMP */
if (!__pyx_parallel_exc_type) {
__Pyx_ErrFetchWithState(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb);
__pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno;
__Pyx_GOTREF(__pyx_parallel_exc_type);
}
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
__pyx_parallel_why = 4;
goto __pyx_L25;
__pyx_L25:;
#ifdef _OPENMP
Py_END_ALLOW_THREADS
#else
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#endif /* _OPENMP */
/* Clean up any temporaries */
__PYX_XDEC_MEMVIEW(&__pyx_t_12, 0);
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
#ifndef _OPENMP
}
#endif /* _OPENMP */
}
if (__pyx_parallel_exc_type) {
/* This may have been overridden by a continue, break or return in another thread. Prefer the error. */
__pyx_parallel_why = 4;
}
if (__pyx_parallel_why) {
switch (__pyx_parallel_why) {
case 4:
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
__Pyx_GIVEREF(__pyx_parallel_exc_type);
__Pyx_ErrRestoreWithState(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb);
__pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno;
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
goto __pyx_L7_error;
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+6556: return
goto __pyx_L0;
6557:
6558:
6559:
6560: # ==============================================================================
6561: #
6562: # WHICH LOS/VPOLY IS CLOSER
6563: #
6564: # ==============================================================================
6565:
+6566: def which_los_closer_vpoly_vec(int nvpoly, int nlos,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_79which_los_closer_vpoly_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_78which_los_closer_vpoly_vec[] = "\n Params\n ======\n nvpoly : int\n Number of flux surfaces\n nlos : int\n Number of LOS\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS direction vector\n ves_poly : (num_pol, 2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the different IN surfaces\n WARNING : we suppose all poly are nested in each other,\n and the first one is the smallest one\n eps_<val> : double\n Small value, acceptance of error\n Returns\n =======\n ind_close_los : (npoly) int array\n Of the form [ind_0, ind_1, ..., ind_(npoly-1)]\n where ind_i is the coefficient for the i-th flux surface\n such that the ind_i-th ray (LOS) is closest to the extruded polygon\n among all other LOS without going over it.\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `which_los_closer_vpoly_vec_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_79which_los_closer_vpoly_vec = {"which_los_closer_vpoly_vec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_79which_los_closer_vpoly_vec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_78which_los_closer_vpoly_vec};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_79which_los_closer_vpoly_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_nvpoly;
int __pyx_v_nlos;
PyArrayObject *__pyx_v_ray_orig = 0;
PyArrayObject *__pyx_v_ray_vdir = 0;
PyArrayObject *__pyx_v_ves_poly = 0;
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
double __pyx_v_eps_plane;
PyObject *__pyx_v_ves_type = 0;
PyObject *__pyx_v_algo_type = 0;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("which_los_closer_vpoly_vec (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nvpoly,&__pyx_n_s_nlos,&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_algo_type,&__pyx_n_s_num_threads,0};
PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
values[10] = ((PyObject*)__pyx_n_s_Tor);
values[11] = ((PyObject*)__pyx_n_s_simple);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nvpoly)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlos)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_los_closer_vpoly_vec", 0, 5, 13, 1); __PYX_ERR(0, 6566, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_los_closer_vpoly_vec", 0, 5, 13, 2); __PYX_ERR(0, 6566, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_los_closer_vpoly_vec", 0, 5, 13, 3); __PYX_ERR(0, 6566, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_los_closer_vpoly_vec", 0, 5, 13, 4); __PYX_ERR(0, 6566, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_algo_type);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[12] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "which_los_closer_vpoly_vec") < 0)) __PYX_ERR(0, 6566, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_nvpoly = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nvpoly == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6566, __pyx_L3_error)
__pyx_v_nlos = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nlos == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6566, __pyx_L3_error)
__pyx_v_ray_orig = ((PyArrayObject *)values[2]);
__pyx_v_ray_vdir = ((PyArrayObject *)values[3]);
__pyx_v_ves_poly = ((PyArrayObject *)values[4]);
if (values[5]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6570, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__110;
}
if (values[6]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6570, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__111;
}
if (values[7]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6571, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__112;
}
if (values[8]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6571, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__113;
}
if (values[9]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6572, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__114;
}
__pyx_v_ves_type = ((PyObject*)values[10]);
__pyx_v_algo_type = ((PyObject*)values[11]);
if (values[12]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[12]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6573, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("which_los_closer_vpoly_vec", 0, 5, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6566, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.which_los_closer_vpoly_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_orig), __pyx_ptype_5numpy_ndarray, 1, "ray_orig", 0))) __PYX_ERR(0, 6567, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_vdir), __pyx_ptype_5numpy_ndarray, 1, "ray_vdir", 0))) __PYX_ERR(0, 6568, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_poly), __pyx_ptype_5numpy_ndarray, 1, "ves_poly", 0))) __PYX_ERR(0, 6569, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 6572, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_algo_type), (&PyString_Type), 1, "algo_type", 1))) __PYX_ERR(0, 6573, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_78which_los_closer_vpoly_vec(__pyx_self, __pyx_v_nvpoly, __pyx_v_nlos, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_v_num_threads);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_78which_los_closer_vpoly_vec(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nvpoly, int __pyx_v_nlos, PyArrayObject *__pyx_v_ray_orig, PyArrayObject *__pyx_v_ray_vdir, PyArrayObject *__pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, int __pyx_v_num_threads) {
PyObject *__pyx_v_warn = NULL;
arrayobject *__pyx_v_ind_close_tab = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_orig;
__Pyx_Buffer __pyx_pybuffer_ray_orig;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_vdir;
__Pyx_Buffer __pyx_pybuffer_ray_vdir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ves_poly;
__Pyx_Buffer __pyx_pybuffer_ves_poly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("which_los_closer_vpoly_vec", 0);
__pyx_pybuffer_ray_orig.pybuffer.buf = NULL;
__pyx_pybuffer_ray_orig.refcount = 0;
__pyx_pybuffernd_ray_orig.data = NULL;
__pyx_pybuffernd_ray_orig.rcbuffer = &__pyx_pybuffer_ray_orig;
__pyx_pybuffer_ray_vdir.pybuffer.buf = NULL;
__pyx_pybuffer_ray_vdir.refcount = 0;
__pyx_pybuffernd_ray_vdir.data = NULL;
__pyx_pybuffernd_ray_vdir.rcbuffer = &__pyx_pybuffer_ray_vdir;
__pyx_pybuffer_ves_poly.pybuffer.buf = NULL;
__pyx_pybuffer_ves_poly.refcount = 0;
__pyx_pybuffernd_ves_poly.data = NULL;
__pyx_pybuffernd_ves_poly.rcbuffer = &__pyx_pybuffer_ves_poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_orig, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6566, __pyx_L1_error)
}
__pyx_pybuffernd_ray_orig.diminfo[0].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_orig.diminfo[0].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_orig.diminfo[1].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_orig.diminfo[1].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_vdir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6566, __pyx_L1_error)
}
__pyx_pybuffernd_ray_vdir.diminfo[0].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_vdir.diminfo[0].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_vdir.diminfo[1].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_vdir.diminfo[1].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_ves_poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 3, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6566, __pyx_L1_error)
}
__pyx_pybuffernd_ves_poly.diminfo[0].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ves_poly.diminfo[0].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ves_poly.diminfo[1].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ves_poly.diminfo[1].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_ves_poly.diminfo[2].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_ves_poly.diminfo[2].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[2];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_4, 1);
__Pyx_XDECREF(__pyx_t_6);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.which_los_closer_vpoly_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF((PyObject *)__pyx_v_ind_close_tab);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__236 = PyTuple_Pack(15, __pyx_n_s_nvpoly, __pyx_n_s_nlos, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_algo_type, __pyx_n_s_num_threads, __pyx_n_s_warn, __pyx_n_s_ind_close_tab); if (unlikely(!__pyx_tuple__236)) __PYX_ERR(0, 6566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__236);
__Pyx_GIVEREF(__pyx_tuple__236);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_79which_los_closer_vpoly_vec, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6566, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_which_los_closer_vpoly_vec, __pyx_t_2) < 0) __PYX_ERR(0, 6566, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(13, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__236, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_which_los_closer_vpoly_vec, 6566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(0, 6566, __pyx_L1_error)
6567: np.ndarray[double,ndim=2,mode='c'] ray_orig,
6568: np.ndarray[double,ndim=2,mode='c'] ray_vdir,
6569: np.ndarray[double,ndim=3,mode='c'] ves_poly,
+6570: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__110 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__111 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+6571: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__112 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__113 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+6572: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__114 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
6573: str algo_type='simple', int num_threads=16):
6574: """
6575: Params
6576: ======
6577: nvpoly : int
6578: Number of flux surfaces
6579: nlos : int
6580: Number of LOS
6581: ray_orig : (3, num_los) double array
6582: LOS origin points coordinates
6583: ray_vdir : (3, num_los) double array
6584: LOS direction vector
6585: ves_poly : (num_pol, 2, num_vertex) double array
6586: Coordinates of the vertices of the Polygon defining the 2D poloidal
6587: cut of the different IN surfaces
6588: WARNING : we suppose all poly are nested in each other,
6589: and the first one is the smallest one
6590: eps_<val> : double
6591: Small value, acceptance of error
6592: Returns
6593: =======
6594: ind_close_los : (npoly) int array
6595: Of the form [ind_0, ind_1, ..., ind_(npoly-1)]
6596: where ind_i is the coefficient for the i-th flux surface
6597: such that the ind_i-th ray (LOS) is closest to the extruded polygon
6598: among all other LOS without going over it.
6599: ---
6600: This is the PYTHON function, use only if you need this computation from
6601: Python, if you need it from Cython, use `which_los_closer_vpoly_vec_core`
6602: """
+6603: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6603, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6604: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__115, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__115 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 6604, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__115); __Pyx_GIVEREF(__pyx_tuple__115);
6605: Warning)
6606:
+6607: cdef array ind_close_tab = clone(array('i'), nvpoly, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), __pyx_v_nvpoly, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ind_close_tab = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
+6608: which_los_closer_vpoly_vec_core(nvpoly, nlos,
__pyx_t_5.__pyx_n = 1; __pyx_t_5.num_threads = __pyx_v_num_threads; __pyx_f_4tofu_4geom_5_GG03_which_los_closer_vpoly_vec_core(__pyx_v_nvpoly, __pyx_v_nlos, ((double *)__pyx_v_ray_orig->data), ((double *)__pyx_v_ray_vdir->data), __pyx_t_3, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_t_4, &__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1); __pyx_t_3.memview = NULL; __pyx_t_3.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_4, 1); __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
6609: <double*>ray_orig.data,
6610: <double*>ray_vdir.data,
+6611: ves_poly,
__pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(((PyObject *)__pyx_v_ves_poly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 6611, __pyx_L1_error)
6612: eps_uz, eps_a,
6613: eps_vz, eps_b,
6614: eps_plane,
6615: ves_type,
6616: algo_type,
+6617: ind_close_tab,
__pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_ind_close_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 6617, __pyx_L1_error)
6618: num_threads)
+6619: return np.asarray(ind_close_tab)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, ((PyObject *)__pyx_v_ind_close_tab)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_ind_close_tab)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6620:
6621:
+6622: cdef void which_los_closer_vpoly_vec_core(int num_poly, int nlos,
static void __pyx_f_4tofu_4geom_5_GG03_which_los_closer_vpoly_vec_core(int __pyx_v_num_poly, int __pyx_v_nlos, double *__pyx_v_ray_orig, double *__pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, __Pyx_memviewslice __pyx_v_ind_close_tab, struct __pyx_opt_args_4tofu_4geom_5_GG03_which_los_closer_vpoly_vec_core *__pyx_optional_args) {
int __pyx_v_num_threads = ((int)16);
int __pyx_v_ind_los;
int __pyx_v_ind_pol;
int __pyx_v_indloc;
double __pyx_v_loc_dist;
CYTHON_UNUSED double __pyx_v_crit2_base;
arrayobject *__pyx_v_kmin_tab = 0;
arrayobject *__pyx_v_dist_tab = 0;
PyObject *__pyx_v_warn = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("which_los_closer_vpoly_vec_core", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_num_threads = __pyx_optional_args->num_threads;
}
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__Pyx_XDECREF(__pyx_t_17);
__Pyx_WriteUnraisable("tofu.geom._GG03.which_los_closer_vpoly_vec_core", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF((PyObject *)__pyx_v_kmin_tab);
__Pyx_XDECREF((PyObject *)__pyx_v_dist_tab);
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_RefNannyFinishContext();
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_which_los_closer_vpoly_vec_core {
int __pyx_n;
int num_threads;
};
6623: double* ray_orig,
6624: double* ray_vdir,
6625: double[:,:,::1] ves_poly,
6626: double eps_uz,
6627: double eps_a,
6628: double eps_vz,
6629: double eps_b,
6630: double eps_plane,
6631: str ves_type,
6632: str algo_type,
6633: int[::1] ind_close_tab,
6634: int num_threads=16):
6635: """
6636: Params
6637: ======
6638: num_poly : int
6639: Number of flux surfaces
6640: nlos : int
6641: Number of LOS
6642: ray_orig : (3, nlos) double array
6643: LOS origin points coordinates
6644: ray_vdir : (3, nlos) double array
6645: LOS normalized direction vector
6646: ves_poly : (num_pol, 2, num_vertex) double array
6647: Coordinates of the vertices of the Polygon defining the 2D poloidal
6648: cut of the different IN surfaces.
6649: WARNING : we suppose all poly are nested in each other,
6650: and the first one is the smallest one
6651: eps_<val> : double
6652: Small value, acceptance of error
6653: Returns
6654: =======
6655: ind_close_tab : (npoly) int array
6656: Of the form [ind_0, ind_1, ..., ind_(npoly-1)]
6657: where ind_i is the coefficient for the i-th flux surface
6658: such that the ind_i-th ray (LOS) is closest to the extruded polygon
6659: among all other LOS without going over it.
6660: ---
6661: This is the CYTHON function, use only if you need this computation from
6662: Cython, if you need it from Python, use `comp_dist_los_vpoly_vec`
6663: """
6664: cdef int i, ind_los, ind_pol, ind_pol2, indloc
6665: cdef int npts_poly
6666: cdef double* loc_res
6667: cdef double* loc_dir
6668: cdef double* loc_org
6669: cdef double loc_dist
6670: cdef double* lpolyx
6671: cdef double* lpolyy
6672: cdef double crit2, invuz, dpar2, upar2, upscaDp
+6673: cdef double crit2_base = eps_uz * eps_uz /400.
__pyx_v_crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
+6674: cdef array kmin_tab = clone(array('d'), num_poly*nlos, True)
__pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_1), (__pyx_v_num_poly * __pyx_v_nlos), 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_kmin_tab = ((arrayobject *)__pyx_t_2); __pyx_t_2 = 0;
+6675: cdef array dist_tab = clone(array('d'), num_poly*nlos, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), (__pyx_v_num_poly * __pyx_v_nlos), 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6675, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_dist_tab = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
6676:
+6677: if not algo_type.lower() == "simple" or not ves_type.lower() == "tor":
__pyx_t_1 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_algo_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_simple, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 6677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = ((!__pyx_t_4) != 0); if (!__pyx_t_5) { } else { __pyx_t_3 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } __pyx_t_1 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_1, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6677, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = ((!__pyx_t_5) != 0); __pyx_t_3 = __pyx_t_4; __pyx_L4_bool_binop_done:; if (__pyx_t_3) { /* … */ }
+6678: assert False, "The function is only implemented with the simple"\
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
+6679: + " algorithm and for toroidal vessels... Sorry!"
__pyx_t_1 = PyNumber_Add(__pyx_kp_s_The_function_is_only_implemented, __pyx_kp_s_algorithm_and_for_toroidal_vess); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); PyErr_SetObject(PyExc_AssertionError, __pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 6678, __pyx_L1_error) } } #endif
+6680: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6681: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__116, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__116 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(0, 6681, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__116); __Pyx_GIVEREF(__pyx_tuple__116);
6682: Warning)
6683:
+6684: for indloc in range(num_poly):
__pyx_t_6 = __pyx_v_num_poly;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_indloc = __pyx_t_8;
+6685: ind_close_tab[indloc] = -1
__pyx_t_9 = __pyx_v_indloc;
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_close_tab.data) + __pyx_t_9)) )) = -1;
}
+6686: comp_dist_los_vpoly_vec_core(num_poly, nlos,
__pyx_t_12.__pyx_n = 1; __pyx_t_12.num_threads = __pyx_v_num_threads; __pyx_f_4tofu_4geom_5_GG03_comp_dist_los_vpoly_vec_core(__pyx_v_num_poly, __pyx_v_nlos, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_t_10, __pyx_t_11, &__pyx_t_12); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1); __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
6687: ray_orig,
6688: ray_vdir,
6689: ves_poly,
6690: eps_uz, eps_a,
6691: eps_vz, eps_b,
6692: eps_plane,
6693: ves_type,
6694: algo_type,
+6695: kmin_tab, dist_tab,
__pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_kmin_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 6695, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_dist_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 6695, __pyx_L1_error)
6696: num_threads)
6697:
6698: # We use local arrays for each thread so...
+6699: for ind_pol in range(num_poly):
__pyx_t_6 = __pyx_v_num_poly;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_ind_pol = __pyx_t_8;
+6700: loc_dist = 100000000.
__pyx_v_loc_dist = 100000000.;
+6701: for ind_los in range(nlos):
__pyx_t_13 = __pyx_v_nlos;
__pyx_t_14 = __pyx_t_13;
for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) {
__pyx_v_ind_los = __pyx_t_15;
+6702: if (dist_tab[ind_los*num_poly + ind_pol] < loc_dist):
__pyx_t_16 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol);
__pyx_t_2 = __Pyx_GetItemInt(((PyObject *)__pyx_v_dist_tab), __pyx_t_16, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_loc_dist); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6702, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_17 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 6702, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6702, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
if (__pyx_t_3) {
/* … */
}
}
}
+6703: ind_close_tab[ind_pol] = ind_los
__pyx_t_18 = __pyx_v_ind_pol;
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_close_tab.data) + __pyx_t_18)) )) = __pyx_v_ind_los;
+6704: loc_dist = dist_tab[ind_los*num_poly + ind_pol]
__pyx_t_16 = ((__pyx_v_ind_los * __pyx_v_num_poly) + __pyx_v_ind_pol);
__pyx_t_17 = __Pyx_GetItemInt(((PyObject *)__pyx_v_dist_tab), __pyx_t_16, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 6704, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_17);
__pyx_t_19 = __pyx_PyFloat_AsDouble(__pyx_t_17); if (unlikely((__pyx_t_19 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6704, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
__pyx_v_loc_dist = __pyx_t_19;
6705:
+6706: return
goto __pyx_L0;
6707:
6708:
6709:
6710:
+6711: def which_vpoly_closer_los_vec(int nvpoly, int nlos,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_81which_vpoly_closer_los_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_4tofu_4geom_5_GG03_80which_vpoly_closer_los_vec[] = "\n Params\n ======\n nvpoly : int\n Number of flux surfaces\n nlos : int\n Number of LOS\n ray_orig : (3, num_los) double array\n LOS origin points coordinates\n ray_vdir : (3, num_los) double array\n LOS direction vector\n ves_poly : (num_pol, 2, num_vertex) double array\n Coordinates of the vertices of the Polygon defining the 2D poloidal\n cut of the different IN surfaces\n WARNING : we suppose all poly are nested in each other,\n and the first one is the smallest one\n eps_<val> : double\n Small value, acceptance of error\n Returns\n =======\n ind_close_los : (nlos) int array\n Of the form [ind_0, ind_1, ..., ind_(nlos-1)]\n where ind_i is the coefficient for the i-th LOS (ray)\n such that the ind_i-th poly (flux surface) is closest to the LOS\n among all other poly without going over it.\n ---\n This is the PYTHON function, use only if you need this computation from\n Python, if you need it from Cython, use `which_vpoly_closer_los_vec_core`\n ";
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_81which_vpoly_closer_los_vec = {"which_vpoly_closer_los_vec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_81which_vpoly_closer_los_vec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_4tofu_4geom_5_GG03_80which_vpoly_closer_los_vec};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_81which_vpoly_closer_los_vec(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
int __pyx_v_nvpoly;
int __pyx_v_nlos;
PyArrayObject *__pyx_v_ray_orig = 0;
PyArrayObject *__pyx_v_ray_vdir = 0;
PyArrayObject *__pyx_v_ves_poly = 0;
double __pyx_v_eps_uz;
double __pyx_v_eps_a;
double __pyx_v_eps_vz;
double __pyx_v_eps_b;
double __pyx_v_eps_plane;
PyObject *__pyx_v_ves_type = 0;
PyObject *__pyx_v_algo_type = 0;
int __pyx_v_num_threads;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("which_vpoly_closer_los_vec (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nvpoly,&__pyx_n_s_nlos,&__pyx_n_s_ray_orig,&__pyx_n_s_ray_vdir,&__pyx_n_s_ves_poly,&__pyx_n_s_eps_uz,&__pyx_n_s_eps_a,&__pyx_n_s_eps_vz,&__pyx_n_s_eps_b,&__pyx_n_s_eps_plane,&__pyx_n_s_ves_type,&__pyx_n_s_algo_type,&__pyx_n_s_num_threads,0};
PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
values[10] = ((PyObject*)__pyx_n_s_Tor);
values[11] = ((PyObject*)__pyx_n_s_simple);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nvpoly)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlos)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_vpoly_closer_los_vec", 0, 5, 13, 1); __PYX_ERR(0, 6711, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_orig)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_vpoly_closer_los_vec", 0, 5, 13, 2); __PYX_ERR(0, 6711, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ray_vdir)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_vpoly_closer_los_vec", 0, 5, 13, 3); __PYX_ERR(0, 6711, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_poly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("which_vpoly_closer_los_vec", 0, 5, 13, 4); __PYX_ERR(0, 6711, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_uz);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_a);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_vz);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_b);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eps_plane);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ves_type);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_algo_type);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_num_threads);
if (value) { values[12] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "which_vpoly_closer_los_vec") < 0)) __PYX_ERR(0, 6711, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_nvpoly = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_nvpoly == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6711, __pyx_L3_error)
__pyx_v_nlos = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_nlos == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6711, __pyx_L3_error)
__pyx_v_ray_orig = ((PyArrayObject *)values[2]);
__pyx_v_ray_vdir = ((PyArrayObject *)values[3]);
__pyx_v_ves_poly = ((PyArrayObject *)values[4]);
if (values[5]) {
__pyx_v_eps_uz = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_eps_uz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6715, __pyx_L3_error)
} else {
__pyx_v_eps_uz = __pyx_k__117;
}
if (values[6]) {
__pyx_v_eps_a = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_eps_a == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6715, __pyx_L3_error)
} else {
__pyx_v_eps_a = __pyx_k__118;
}
if (values[7]) {
__pyx_v_eps_vz = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_eps_vz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6716, __pyx_L3_error)
} else {
__pyx_v_eps_vz = __pyx_k__119;
}
if (values[8]) {
__pyx_v_eps_b = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_eps_b == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6716, __pyx_L3_error)
} else {
__pyx_v_eps_b = __pyx_k__120;
}
if (values[9]) {
__pyx_v_eps_plane = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_eps_plane == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6717, __pyx_L3_error)
} else {
__pyx_v_eps_plane = __pyx_k__121;
}
__pyx_v_ves_type = ((PyObject*)values[10]);
__pyx_v_algo_type = ((PyObject*)values[11]);
if (values[12]) {
__pyx_v_num_threads = __Pyx_PyInt_As_int(values[12]); if (unlikely((__pyx_v_num_threads == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 6718, __pyx_L3_error)
} else {
__pyx_v_num_threads = ((int)16);
}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("which_vpoly_closer_los_vec", 0, 5, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6711, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.which_vpoly_closer_los_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_orig), __pyx_ptype_5numpy_ndarray, 1, "ray_orig", 0))) __PYX_ERR(0, 6712, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ray_vdir), __pyx_ptype_5numpy_ndarray, 1, "ray_vdir", 0))) __PYX_ERR(0, 6713, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_poly), __pyx_ptype_5numpy_ndarray, 1, "ves_poly", 0))) __PYX_ERR(0, 6714, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ves_type), (&PyString_Type), 1, "ves_type", 1))) __PYX_ERR(0, 6717, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_algo_type), (&PyString_Type), 1, "algo_type", 1))) __PYX_ERR(0, 6718, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_80which_vpoly_closer_los_vec(__pyx_self, __pyx_v_nvpoly, __pyx_v_nlos, __pyx_v_ray_orig, __pyx_v_ray_vdir, __pyx_v_ves_poly, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_v_num_threads);
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_80which_vpoly_closer_los_vec(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_nvpoly, int __pyx_v_nlos, PyArrayObject *__pyx_v_ray_orig, PyArrayObject *__pyx_v_ray_vdir, PyArrayObject *__pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, int __pyx_v_num_threads) {
PyObject *__pyx_v_warn = NULL;
arrayobject *__pyx_v_ind_close_tab = 0;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_orig;
__Pyx_Buffer __pyx_pybuffer_ray_orig;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ray_vdir;
__Pyx_Buffer __pyx_pybuffer_ray_vdir;
__Pyx_LocalBuf_ND __pyx_pybuffernd_ves_poly;
__Pyx_Buffer __pyx_pybuffer_ves_poly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("which_vpoly_closer_los_vec", 0);
__pyx_pybuffer_ray_orig.pybuffer.buf = NULL;
__pyx_pybuffer_ray_orig.refcount = 0;
__pyx_pybuffernd_ray_orig.data = NULL;
__pyx_pybuffernd_ray_orig.rcbuffer = &__pyx_pybuffer_ray_orig;
__pyx_pybuffer_ray_vdir.pybuffer.buf = NULL;
__pyx_pybuffer_ray_vdir.refcount = 0;
__pyx_pybuffernd_ray_vdir.data = NULL;
__pyx_pybuffernd_ray_vdir.rcbuffer = &__pyx_pybuffer_ray_vdir;
__pyx_pybuffer_ves_poly.pybuffer.buf = NULL;
__pyx_pybuffer_ves_poly.refcount = 0;
__pyx_pybuffernd_ves_poly.data = NULL;
__pyx_pybuffernd_ves_poly.rcbuffer = &__pyx_pybuffer_ves_poly;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_orig, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6711, __pyx_L1_error)
}
__pyx_pybuffernd_ray_orig.diminfo[0].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_orig.diminfo[0].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_orig.diminfo[1].strides = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_orig.diminfo[1].shape = __pyx_pybuffernd_ray_orig.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer, (PyObject*)__pyx_v_ray_vdir, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6711, __pyx_L1_error)
}
__pyx_pybuffernd_ray_vdir.diminfo[0].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ray_vdir.diminfo[0].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ray_vdir.diminfo[1].strides = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ray_vdir.diminfo[1].shape = __pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer, (PyObject*)__pyx_v_ves_poly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 3, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6711, __pyx_L1_error)
}
__pyx_pybuffernd_ves_poly.diminfo[0].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_ves_poly.diminfo[0].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_ves_poly.diminfo[1].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_ves_poly.diminfo[1].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[1]; __pyx_pybuffernd_ves_poly.diminfo[2].strides = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.strides[2]; __pyx_pybuffernd_ves_poly.diminfo[2].shape = __pyx_pybuffernd_ves_poly.rcbuffer->pybuffer.shape[2];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__PYX_XDEC_MEMVIEW(&__pyx_t_3, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_4, 1);
__Pyx_XDECREF(__pyx_t_6);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.which_vpoly_closer_los_vec", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_orig.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ray_vdir.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_ves_poly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF((PyObject *)__pyx_v_ind_close_tab);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__238 = PyTuple_Pack(15, __pyx_n_s_nvpoly, __pyx_n_s_nlos, __pyx_n_s_ray_orig, __pyx_n_s_ray_vdir, __pyx_n_s_ves_poly, __pyx_n_s_eps_uz, __pyx_n_s_eps_a, __pyx_n_s_eps_vz, __pyx_n_s_eps_b, __pyx_n_s_eps_plane, __pyx_n_s_ves_type, __pyx_n_s_algo_type, __pyx_n_s_num_threads, __pyx_n_s_warn, __pyx_n_s_ind_close_tab); if (unlikely(!__pyx_tuple__238)) __PYX_ERR(0, 6711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__238);
__Pyx_GIVEREF(__pyx_tuple__238);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_81which_vpoly_closer_los_vec, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6711, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_which_vpoly_closer_los_vec, __pyx_t_2) < 0) __PYX_ERR(0, 6711, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(13, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__238, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_which_vpoly_closer_los_vec, 6711, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(0, 6711, __pyx_L1_error)
6712: np.ndarray[double,ndim=2,mode='c'] ray_orig,
6713: np.ndarray[double,ndim=2,mode='c'] ray_vdir,
6714: np.ndarray[double,ndim=3,mode='c'] ves_poly,
+6715: double eps_uz=_SMALL, double eps_a=_VSMALL,
__pyx_k__117 = __pyx_v_4tofu_4geom_5_GG03__SMALL; __pyx_k__118 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+6716: double eps_vz=_VSMALL, double eps_b=_VSMALL,
__pyx_k__119 = __pyx_v_4tofu_4geom_5_GG03__VSMALL; __pyx_k__120 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
+6717: double eps_plane=_VSMALL, str ves_type='Tor',
__pyx_k__121 = __pyx_v_4tofu_4geom_5_GG03__VSMALL;
6718: str algo_type='simple', int num_threads=16):
6719: """
6720: Params
6721: ======
6722: nvpoly : int
6723: Number of flux surfaces
6724: nlos : int
6725: Number of LOS
6726: ray_orig : (3, num_los) double array
6727: LOS origin points coordinates
6728: ray_vdir : (3, num_los) double array
6729: LOS direction vector
6730: ves_poly : (num_pol, 2, num_vertex) double array
6731: Coordinates of the vertices of the Polygon defining the 2D poloidal
6732: cut of the different IN surfaces
6733: WARNING : we suppose all poly are nested in each other,
6734: and the first one is the smallest one
6735: eps_<val> : double
6736: Small value, acceptance of error
6737: Returns
6738: =======
6739: ind_close_los : (nlos) int array
6740: Of the form [ind_0, ind_1, ..., ind_(nlos-1)]
6741: where ind_i is the coefficient for the i-th LOS (ray)
6742: such that the ind_i-th poly (flux surface) is closest to the LOS
6743: among all other poly without going over it.
6744: ---
6745: This is the PYTHON function, use only if you need this computation from
6746: Python, if you need it from Cython, use `which_vpoly_closer_los_vec_core`
6747: """
+6748: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6749: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_2 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__122, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* … */ __pyx_tuple__122 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__122)) __PYX_ERR(0, 6749, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__122); __Pyx_GIVEREF(__pyx_tuple__122);
6750: Warning)
6751:
+6752: cdef array ind_close_tab = clone(array('i'), nlos, True)
__pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_7cpython_5array_array), __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = ((PyObject *)__pyx_f_7cpython_5array_clone(((arrayobject *)__pyx_t_2), __pyx_v_nlos, 1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_ind_close_tab = ((arrayobject *)__pyx_t_1); __pyx_t_1 = 0;
+6753: which_vpoly_closer_los_vec_core(nvpoly, nlos,
__pyx_t_5.__pyx_n = 1; __pyx_t_5.num_threads = __pyx_v_num_threads; __pyx_f_4tofu_4geom_5_GG03_which_vpoly_closer_los_vec_core(__pyx_v_nvpoly, __pyx_v_nlos, ((double *)__pyx_v_ray_orig->data), ((double *)__pyx_v_ray_vdir->data), __pyx_t_3, __pyx_v_eps_uz, __pyx_v_eps_a, __pyx_v_eps_vz, __pyx_v_eps_b, __pyx_v_eps_plane, __pyx_v_ves_type, __pyx_v_algo_type, __pyx_t_4, &__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_3, 1); __pyx_t_3.memview = NULL; __pyx_t_3.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_4, 1); __pyx_t_4.memview = NULL; __pyx_t_4.data = NULL;
6754: <double*>ray_orig.data,
6755: <double*>ray_vdir.data,
+6756: ves_poly,
__pyx_t_3 = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(((PyObject *)__pyx_v_ves_poly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_3.memview)) __PYX_ERR(0, 6756, __pyx_L1_error)
6757: eps_uz, eps_a,
6758: eps_vz, eps_b,
6759: eps_plane,
6760: ves_type,
6761: algo_type,
+6762: ind_close_tab,
__pyx_t_4 = __Pyx_PyObject_to_MemoryviewSlice_dc_int(((PyObject *)__pyx_v_ind_close_tab), PyBUF_WRITABLE); if (unlikely(!__pyx_t_4.memview)) __PYX_ERR(0, 6762, __pyx_L1_error)
6763: num_threads)
+6764: return np.asarray(ind_close_tab)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, ((PyObject *)__pyx_v_ind_close_tab)) : __Pyx_PyObject_CallOneArg(__pyx_t_6, ((PyObject *)__pyx_v_ind_close_tab)); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6764, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
6765:
6766:
+6767: cdef void which_vpoly_closer_los_vec_core(int num_poly, int nlos,
static void __pyx_f_4tofu_4geom_5_GG03_which_vpoly_closer_los_vec_core(int __pyx_v_num_poly, int __pyx_v_nlos, double *__pyx_v_ray_orig, double *__pyx_v_ray_vdir, __Pyx_memviewslice __pyx_v_ves_poly, double __pyx_v_eps_uz, double __pyx_v_eps_a, double __pyx_v_eps_vz, double __pyx_v_eps_b, CYTHON_UNUSED double __pyx_v_eps_plane, PyObject *__pyx_v_ves_type, PyObject *__pyx_v_algo_type, __Pyx_memviewslice __pyx_v_ind_close_tab, struct __pyx_opt_args_4tofu_4geom_5_GG03_which_vpoly_closer_los_vec_core *__pyx_optional_args) {
int __pyx_v_i;
int __pyx_v_ind_los;
int __pyx_v_ind_pol;
int __pyx_v_indloc;
int __pyx_v_npts_poly;
double *__pyx_v_loc_res;
double *__pyx_v_loc_dir;
double *__pyx_v_loc_org;
double __pyx_v_crit2;
double __pyx_v_invuz;
double __pyx_v_dpar2;
double __pyx_v_upar2;
double __pyx_v_upscaDp;
double __pyx_v_crit2_base;
PyObject *__pyx_v_warn = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("which_vpoly_closer_los_vec_core", 0);
if (__pyx_optional_args) {
}
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_5);
__PYX_XDEC_MEMVIEW(&__pyx_t_13, 1);
__Pyx_WriteUnraisable("tofu.geom._GG03.which_vpoly_closer_los_vec_core", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
__pyx_L0:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_RefNannyFinishContext();
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_which_vpoly_closer_los_vec_core {
int __pyx_n;
int num_threads;
};
6768: double* ray_orig,
6769: double* ray_vdir,
6770: double[:,:,::1] ves_poly,
6771: double eps_uz,
6772: double eps_a,
6773: double eps_vz,
6774: double eps_b,
6775: double eps_plane,
6776: str ves_type,
6777: str algo_type,
6778: int[::1] ind_close_tab,
6779: int num_threads=16):
6780: """
6781: Params
6782: ======
6783: num_poly : int
6784: Number of flux surfaces
6785: nlos : int
6786: Number of LOS
6787: ray_orig : (3, nlos) double array
6788: LOS origin points coordinates
6789: ray_vdir : (3, nlos) double array
6790: LOS normalized direction vector
6791: ves_poly : (num_pol, 2, num_vertex) double array
6792: Coordinates of the vertices of the Polygon defining the 2D poloidal
6793: cut of the different IN surfaces.
6794: WARNING : we suppose all poly are nested in each other,
6795: and the first one is the smallest one
6796: eps_<val> : double
6797: Small value, acceptance of error
6798: Returns
6799: =======
6800: ind_close_los : (nlos) int array
6801: Of the form [ind_0, ind_1, ..., ind_(nlos-1)]
6802: where ind_i is the coefficient for the i-th LOS (ray)
6803: such that the ind_i-th poly (flux surface) is closest to the LOS
6804: among all other poly without going over it.
6805: ---
6806: This is the CYTHON function, use only if you need this computation from
6807: Cython, if you need it from Python, use `comp_dist_los_vpoly_vec`
6808: """
6809: cdef int i, ind_los, ind_pol, ind_pol2, indloc
6810: cdef int npts_poly
6811: cdef double* loc_res
6812: cdef double* loc_dir
6813: cdef double* loc_org
6814: cdef double* lpolyx
6815: cdef double* lpolyy
6816: cdef double crit2, invuz, dpar2, upar2, upscaDp
+6817: cdef double crit2_base = eps_uz * eps_uz /400.
__pyx_v_crit2_base = ((__pyx_v_eps_uz * __pyx_v_eps_uz) / 400.);
6818:
+6819: if not algo_type.lower() == "simple" or not ves_type.lower() == "tor":
__pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_algo_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_simple, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6819, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = ((!__pyx_t_3) != 0); if (!__pyx_t_4) { } else { __pyx_t_1 = __pyx_t_4; goto __pyx_L4_bool_binop_done; } __pyx_t_2 = __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyString_Type_lower, __pyx_v_ves_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 6819, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_1 = __pyx_t_3; __pyx_L4_bool_binop_done:; if (__pyx_t_1) { /* … */ }
+6820: assert False, "The function is only implemented with the simple"\
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
if (unlikely(!0)) {
+6821: + " algorithm and for toroidal vessels... Sorry!"
__pyx_t_2 = PyNumber_Add(__pyx_kp_s_The_function_is_only_implemented, __pyx_kp_s_algorithm_and_for_toroidal_vess); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); PyErr_SetObject(PyExc_AssertionError, __pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 6820, __pyx_L1_error) } } #endif
+6822: from warnings import warn
__pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_warn); __pyx_t_5 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_2, -1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_5, __pyx_n_s_warn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6822, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_2); __pyx_v_warn = __pyx_t_2; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+6823: warn("This function supposes that the polys are nested from inner to outer",
__pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__123, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 6823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; /* … */ __pyx_tuple__123 = PyTuple_Pack(2, __pyx_kp_s_This_function_supposes_that_the, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(0, 6823, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__123); __Pyx_GIVEREF(__pyx_tuple__123);
6824: Warning)
6825:
6826: # initialization ...............................................
+6827: for indloc in range(nlos):
__pyx_t_6 = __pyx_v_nlos;
__pyx_t_7 = __pyx_t_6;
for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
__pyx_v_indloc = __pyx_t_8;
+6828: ind_close_tab[indloc] = num_poly-1
__pyx_t_9 = __pyx_v_indloc;
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_close_tab.data) + __pyx_t_9)) )) = (__pyx_v_num_poly - 1);
}
6829:
6830: # == Defining parallel part ================================================
+6831: with nogil, parallel():
{
#ifdef WITH_THREAD
PyThreadState *_save;
Py_UNBLOCK_THREADS
__Pyx_FastGIL_Remember();
#endif
/*try:*/ {
{
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) (x)
#define unlikely(x) (x)
#endif
#ifdef _OPENMP
#pragma omp parallel private(__pyx_v_loc_dir, __pyx_v_loc_org, __pyx_v_loc_res)
#endif /* _OPENMP */
{
/* Initialize private variables to invalid values */
__pyx_v_loc_dir = ((double *)1);
__pyx_v_loc_org = ((double *)1);
__pyx_v_loc_res = ((double *)1);
/* … */
/*finally:*/ {
/*normal exit:*/{
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L10;
}
__pyx_L9_error: {
#ifdef WITH_THREAD
__Pyx_FastGIL_Forget();
Py_BLOCK_THREADS
#endif
goto __pyx_L1_error;
}
__pyx_L10:;
}
}
6832: # We use local arrays for each thread so...
+6833: loc_dir = <double*>malloc(3*sizeof(double))
__pyx_v_loc_dir = ((double *)malloc((3 * (sizeof(double)))));
+6834: loc_org = <double*>malloc(3*sizeof(double))
__pyx_v_loc_org = ((double *)malloc((3 * (sizeof(double)))));
+6835: loc_res = <double*>malloc(2*sizeof(double))
__pyx_v_loc_res = ((double *)malloc((2 * (sizeof(double)))));
6836: # == The parallelization over the LOS ==================================
+6837: for ind_los in prange(nlos, schedule='dynamic'):
__pyx_t_6 = __pyx_v_nlos;
if (1 == 0) abort();
{
__pyx_t_8 = (__pyx_t_6 - 0 + 1 - 1/abs(1)) / 1;
if (__pyx_t_8 > 0)
{
#ifdef _OPENMP
#pragma omp for lastprivate(__pyx_v_crit2) lastprivate(__pyx_v_dpar2) lastprivate(__pyx_v_i) firstprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_los) lastprivate(__pyx_v_ind_pol) lastprivate(__pyx_v_invuz) lastprivate(__pyx_v_npts_poly) lastprivate(__pyx_v_upar2) lastprivate(__pyx_v_upscaDp) schedule(dynamic)
#endif /* _OPENMP */
for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_8; __pyx_t_7++){
{
__pyx_v_ind_los = (int)(0 + 1 * __pyx_t_7);
/* Initialize private variables to invalid values */
__pyx_v_crit2 = ((double)__PYX_NAN());
__pyx_v_dpar2 = ((double)__PYX_NAN());
__pyx_v_i = ((int)0xbad0bad0);
__pyx_v_ind_pol = ((int)0xbad0bad0);
__pyx_v_invuz = ((double)__PYX_NAN());
__pyx_v_npts_poly = ((int)0xbad0bad0);
__pyx_v_upar2 = ((double)__PYX_NAN());
__pyx_v_upscaDp = ((double)__PYX_NAN());
+6838: for i in range(3):
for (__pyx_t_10 = 0; __pyx_t_10 < 3; __pyx_t_10+=1) {
__pyx_v_i = __pyx_t_10;
+6839: loc_dir[i] = ray_vdir[ind_los * 3 + i]
(__pyx_v_loc_dir[__pyx_v_i]) = (__pyx_v_ray_vdir[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
+6840: loc_org[i] = ray_orig[ind_los * 3 + i]
(__pyx_v_loc_org[__pyx_v_i]) = (__pyx_v_ray_orig[((__pyx_v_ind_los * 3) + __pyx_v_i)]);
}
6841: # -- Computing values that depend on the LOS/ray -------------------
+6842: upscaDp = loc_dir[0]*loc_org[0] + loc_dir[1]*loc_org[1]
__pyx_v_upscaDp = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_org[1])));
+6843: upar2 = loc_dir[0]*loc_dir[0] + loc_dir[1]*loc_dir[1]
__pyx_v_upar2 = (((__pyx_v_loc_dir[0]) * (__pyx_v_loc_dir[0])) + ((__pyx_v_loc_dir[1]) * (__pyx_v_loc_dir[1])));
+6844: dpar2 = loc_org[0]*loc_org[0] + loc_org[1]*loc_org[1]
__pyx_v_dpar2 = (((__pyx_v_loc_org[0]) * (__pyx_v_loc_org[0])) + ((__pyx_v_loc_org[1]) * (__pyx_v_loc_org[1])));
+6845: invuz = 1./loc_dir[2]
__pyx_v_invuz = (1. / (__pyx_v_loc_dir[2]));
+6846: crit2 = upar2*crit2_base
__pyx_v_crit2 = (__pyx_v_upar2 * __pyx_v_crit2_base);
6847: # -- Looping over each flux surface---------------------------------
+6848: for ind_pol in range(num_poly):
__pyx_t_10 = __pyx_v_num_poly;
__pyx_t_11 = __pyx_t_10;
for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
__pyx_v_ind_pol = __pyx_t_12;
+6849: npts_poly = ves_poly[ind_pol].shape[1]
__pyx_t_13.data = __pyx_v_ves_poly.data;
__pyx_t_13.memview = __pyx_v_ves_poly.memview;
__PYX_INC_MEMVIEW(&__pyx_t_13, 0);
{
Py_ssize_t __pyx_tmp_idx = __pyx_v_ind_pol;
Py_ssize_t __pyx_tmp_stride = __pyx_v_ves_poly.strides[0];
if ((0)) __PYX_ERR(0, 6849, __pyx_L17_error)
__pyx_t_13.data += __pyx_tmp_idx * __pyx_tmp_stride;
}
__pyx_t_13.shape[0] = __pyx_v_ves_poly.shape[1];
__pyx_t_13.strides[0] = __pyx_v_ves_poly.strides[1];
__pyx_t_13.suboffsets[0] = -1;
__pyx_t_13.shape[1] = __pyx_v_ves_poly.shape[2];
__pyx_t_13.strides[1] = __pyx_v_ves_poly.strides[2];
__pyx_t_13.suboffsets[1] = -1;
__pyx_v_npts_poly = (__pyx_t_13.shape[1]);
__PYX_XDEC_MEMVIEW(&__pyx_t_13, 0);
__pyx_t_13.memview = NULL;
__pyx_t_13.data = NULL;
+6850: simple_dist_los_vpoly_core(loc_org, loc_dir,
__pyx_f_4tofu_4geom_5_GG03_simple_dist_los_vpoly_core(__pyx_v_loc_org, __pyx_v_loc_dir, (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_14 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_15 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_16)) )))), (&(*((double *) ( /* dim=2 */ ((char *) (((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ves_poly.data + __pyx_t_17 * __pyx_v_ves_poly.strides[0]) ) + __pyx_t_18 * __pyx_v_ves_poly.strides[1]) )) + __pyx_t_19)) )))), __pyx_v_npts_poly, __pyx_v_upscaDp, __pyx_v_upar2, __pyx_v_dpar2, __pyx_v_invuz, __pyx_v_crit2, __pyx_v_eps_uz, __pyx_v_eps_vz, __pyx_v_eps_a, __pyx_v_eps_b, __pyx_v_loc_res);
+6851: &ves_poly[ind_pol][0][0],
__pyx_t_14 = __pyx_v_ind_pol;
__pyx_t_15 = 0;
__pyx_t_16 = 0;
+6852: &ves_poly[ind_pol][1][0],
__pyx_t_17 = __pyx_v_ind_pol;
__pyx_t_18 = 1;
__pyx_t_19 = 0;
6853: npts_poly, upscaDp,
6854: upar2, dpar2,
6855: invuz, crit2,
6856: eps_uz, eps_vz,
6857: eps_a, eps_b,
6858: loc_res)
6859: # filling the array when nan found .............................
+6860: if not loc_res[1] == loc_res[1]:
__pyx_t_1 = ((!(((__pyx_v_loc_res[1]) == (__pyx_v_loc_res[1])) != 0)) != 0);
if (__pyx_t_1) {
/* … */
}
__pyx_L21_continue:;
}
goto __pyx_L25;
__pyx_L17_error:;
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_exc_type)
#endif /* _OPENMP */
if (!__pyx_parallel_exc_type) {
__Pyx_ErrFetchWithState(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb);
__pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno;
__Pyx_GOTREF(__pyx_parallel_exc_type);
}
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
__pyx_parallel_why = 4;
goto __pyx_L24;
__pyx_L24:;
#ifdef _OPENMP
#pragma omp critical(__pyx_parallel_lastprivates2)
#endif /* _OPENMP */
{
__pyx_parallel_temp0 = __pyx_v_crit2;
__pyx_parallel_temp1 = __pyx_v_dpar2;
__pyx_parallel_temp2 = __pyx_v_i;
__pyx_parallel_temp3 = __pyx_v_ind_los;
__pyx_parallel_temp4 = __pyx_v_ind_pol;
__pyx_parallel_temp5 = __pyx_v_invuz;
__pyx_parallel_temp6 = __pyx_v_npts_poly;
__pyx_parallel_temp7 = __pyx_v_upar2;
__pyx_parallel_temp8 = __pyx_v_upscaDp;
}
__pyx_L25:;
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_why)
#endif /* _OPENMP */
}
}
}
if (__pyx_parallel_exc_type) {
/* This may have been overridden by a continue, break or return in another thread. Prefer the error. */
__pyx_parallel_why = 4;
}
if (__pyx_parallel_why) {
__pyx_v_crit2 = __pyx_parallel_temp0;
__pyx_v_dpar2 = __pyx_parallel_temp1;
__pyx_v_i = __pyx_parallel_temp2;
__pyx_v_ind_los = __pyx_parallel_temp3;
__pyx_v_ind_pol = __pyx_parallel_temp4;
__pyx_v_invuz = __pyx_parallel_temp5;
__pyx_v_npts_poly = __pyx_parallel_temp6;
__pyx_v_upar2 = __pyx_parallel_temp7;
__pyx_v_upscaDp = __pyx_parallel_temp8;
switch (__pyx_parallel_why) {
case 4:
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
__Pyx_GIVEREF(__pyx_parallel_exc_type);
__Pyx_ErrRestoreWithState(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb);
__pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno;
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
goto __pyx_L13_error;
}
}
}
6861: #the closer poly is the one just before
+6862: ind_close_tab[ind_los] = ind_pol-1
__pyx_t_20 = __pyx_v_ind_los;
*((int *) ( /* dim=0 */ ((char *) (((int *) __pyx_v_ind_close_tab.data) + __pyx_t_20)) )) = (__pyx_v_ind_pol - 1);
+6863: continue
goto __pyx_L21_continue;
+6864: free(loc_dir)
free(__pyx_v_loc_dir);
+6865: free(loc_org)
free(__pyx_v_loc_org);
+6866: free(loc_res)
free(__pyx_v_loc_res);
goto __pyx_L27;
__pyx_L13_error:;
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#ifdef _OPENMP
#pragma omp flush(__pyx_parallel_exc_type)
#endif /* _OPENMP */
if (!__pyx_parallel_exc_type) {
__Pyx_ErrFetchWithState(&__pyx_parallel_exc_type, &__pyx_parallel_exc_value, &__pyx_parallel_exc_tb);
__pyx_parallel_filename = __pyx_filename; __pyx_parallel_lineno = __pyx_lineno; __pyx_parallel_clineno = __pyx_clineno;
__Pyx_GOTREF(__pyx_parallel_exc_type);
}
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
__pyx_parallel_why = 4;
goto __pyx_L27;
__pyx_L27:;
#ifdef _OPENMP
Py_END_ALLOW_THREADS
#else
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
#endif /* _OPENMP */
/* Clean up any temporaries */
__PYX_XDEC_MEMVIEW(&__pyx_t_13, 0);
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
#ifndef _OPENMP
}
#endif /* _OPENMP */
}
if (__pyx_parallel_exc_type) {
/* This may have been overridden by a continue, break or return in another thread. Prefer the error. */
__pyx_parallel_why = 4;
}
if (__pyx_parallel_why) {
switch (__pyx_parallel_why) {
case 4:
{
#ifdef WITH_THREAD
PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
#endif
__Pyx_GIVEREF(__pyx_parallel_exc_type);
__Pyx_ErrRestoreWithState(__pyx_parallel_exc_type, __pyx_parallel_exc_value, __pyx_parallel_exc_tb);
__pyx_filename = __pyx_parallel_filename; __pyx_lineno = __pyx_parallel_lineno; __pyx_clineno = __pyx_parallel_clineno;
#ifdef WITH_THREAD
__Pyx_PyGILState_Release(__pyx_gilstate_save);
#endif
}
goto __pyx_L9_error;
}
}
}
#if ((defined(__APPLE__) || defined(__OSX__)) && (defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))))
#undef likely
#undef unlikely
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
}
+6867: return
goto __pyx_L0;
6868:
6869:
6870:
6871: """
6872: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6873: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6874: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6875: +++++++++++++++++++++++++++ OLD FUNCTIONS CEMETRY ++++++++++++++++++++++++++++++
6876: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6877: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6878: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6879: """
6880:
6881:
6882: # deprecated version !!!!!!!!!!!!! TO ERASE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
+6883: def SLOW_LOS_Calc_PInOut_VesStruct(Ds, dus,
/* Python wrapper */
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_83SLOW_LOS_Calc_PInOut_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_4tofu_4geom_5_GG03_83SLOW_LOS_Calc_PInOut_VesStruct = {"SLOW_LOS_Calc_PInOut_VesStruct", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_4tofu_4geom_5_GG03_83SLOW_LOS_Calc_PInOut_VesStruct, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_4tofu_4geom_5_GG03_83SLOW_LOS_Calc_PInOut_VesStruct(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
PyObject *__pyx_v_Ds = 0;
PyObject *__pyx_v_dus = 0;
PyArrayObject *__pyx_v_VPoly = 0;
PyArrayObject *__pyx_v_VIn = 0;
PyObject *__pyx_v_Lim = 0;
PyObject *__pyx_v_nLim = 0;
PyObject *__pyx_v_LSPoly = 0;
PyObject *__pyx_v_LSLim = 0;
PyObject *__pyx_v_lSnLim = 0;
PyObject *__pyx_v_LSVIn = 0;
PyObject *__pyx_v_RMin = 0;
PyObject *__pyx_v_Forbid = 0;
PyObject *__pyx_v_EpsUz = 0;
PyObject *__pyx_v_EpsVz = 0;
PyObject *__pyx_v_EpsA = 0;
PyObject *__pyx_v_EpsB = 0;
PyObject *__pyx_v_EpsPlane = 0;
PyObject *__pyx_v_VType = 0;
PyObject *__pyx_v_Test = 0;
PyObject *__pyx_r = 0;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("SLOW_LOS_Calc_PInOut_VesStruct (wrapper)", 0);
{
static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_Ds,&__pyx_n_s_dus,&__pyx_n_s_VPoly,&__pyx_n_s_VIn,&__pyx_n_s_Lim,&__pyx_n_s_nLim,&__pyx_n_s_LSPoly,&__pyx_n_s_LSLim,&__pyx_n_s_lSnLim,&__pyx_n_s_LSVIn,&__pyx_n_s_RMin,&__pyx_n_s_Forbid,&__pyx_n_s_EpsUz,&__pyx_n_s_EpsVz,&__pyx_n_s_EpsA,&__pyx_n_s_EpsB,&__pyx_n_s_EpsPlane,&__pyx_n_s_VType,&__pyx_n_s_Test,0};
PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
/* … */
/* function exit code */
goto __pyx_L0;
__pyx_L1_error:;
__pyx_r = NULL;
__pyx_L0:;
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
static PyObject *__pyx_pf_4tofu_4geom_5_GG03_82SLOW_LOS_Calc_PInOut_VesStruct(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_Ds, PyObject *__pyx_v_dus, PyArrayObject *__pyx_v_VPoly, PyArrayObject *__pyx_v_VIn, PyObject *__pyx_v_Lim, PyObject *__pyx_v_nLim, PyObject *__pyx_v_LSPoly, PyObject *__pyx_v_LSLim, PyObject *__pyx_v_lSnLim, PyObject *__pyx_v_LSVIn, PyObject *__pyx_v_RMin, PyObject *__pyx_v_Forbid, PyObject *__pyx_v_EpsUz, PyObject *__pyx_v_EpsVz, PyObject *__pyx_v_EpsA, PyObject *__pyx_v_EpsB, PyObject *__pyx_v_EpsPlane, PyObject *__pyx_v_VType, PyObject *__pyx_v_Test) {
PyObject *__pyx_v_warn = NULL;
PyObject *__pyx_v_C1 = NULL;
PyObject *__pyx_v_C2 = NULL;
int __pyx_v_ii;
int __pyx_v_jj;
PyObject *__pyx_v_v = NULL;
PyObject *__pyx_v_NL = NULL;
PyObject *__pyx_v_IOut = NULL;
PyObject *__pyx_v_PIn = NULL;
PyObject *__pyx_v_POut = NULL;
PyObject *__pyx_v_VperpIn = NULL;
PyObject *__pyx_v_VperpOut = NULL;
PyObject *__pyx_v_IIn = NULL;
PyObject *__pyx_v_kPOut = NULL;
PyObject *__pyx_v_kPIn = NULL;
CYTHON_UNUSED PyObject *__pyx_v_Ind = NULL;
PyObject *__pyx_v_lslim = NULL;
PyObject *__pyx_v_pIn = NULL;
CYTHON_UNUSED PyObject *__pyx_v_pOut = NULL;
PyObject *__pyx_v_vperpIn = NULL;
CYTHON_UNUSED PyObject *__pyx_v_vperpOut = NULL;
PyObject *__pyx_v_iIn = NULL;
CYTHON_UNUSED PyObject *__pyx_v_iOut = NULL;
PyObject *__pyx_v_kpin = NULL;
PyObject *__pyx_v_indNoNan = NULL;
PyObject *__pyx_v_indout = NULL;
PyObject *__pyx_v_pp = NULL;
PyObject *__pyx_v_ee = NULL;
PyObject *__pyx_v_ll = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VIn;
__Pyx_Buffer __pyx_pybuffer_VIn;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPoly;
__Pyx_Buffer __pyx_pybuffer_VPoly;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("SLOW_LOS_Calc_PInOut_VesStruct", 0);
__Pyx_INCREF(__pyx_v_Ds);
__Pyx_INCREF(__pyx_v_dus);
__Pyx_INCREF(__pyx_v_Lim);
__Pyx_INCREF(__pyx_v_RMin);
__pyx_pybuffer_VPoly.pybuffer.buf = NULL;
__pyx_pybuffer_VPoly.refcount = 0;
__pyx_pybuffernd_VPoly.data = NULL;
__pyx_pybuffernd_VPoly.rcbuffer = &__pyx_pybuffer_VPoly;
__pyx_pybuffer_VIn.pybuffer.buf = NULL;
__pyx_pybuffer_VIn.refcount = 0;
__pyx_pybuffernd_VIn.data = NULL;
__pyx_pybuffernd_VIn.rcbuffer = &__pyx_pybuffer_VIn;
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPoly.rcbuffer->pybuffer, (PyObject*)__pyx_v_VPoly, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6883, __pyx_L1_error)
}
__pyx_pybuffernd_VPoly.diminfo[0].strides = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPoly.diminfo[0].shape = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPoly.diminfo[1].strides = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPoly.diminfo[1].shape = __pyx_pybuffernd_VPoly.rcbuffer->pybuffer.shape[1];
{
__Pyx_BufFmt_StackElem __pyx_stack[1];
if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VIn.rcbuffer->pybuffer, (PyObject*)__pyx_v_VIn, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_C_CONTIGUOUS, 2, 0, __pyx_stack) == -1)) __PYX_ERR(0, 6883, __pyx_L1_error)
}
__pyx_pybuffernd_VIn.diminfo[0].strides = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VIn.diminfo[0].shape = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VIn.diminfo[1].strides = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VIn.diminfo[1].shape = __pyx_pybuffernd_VIn.rcbuffer->pybuffer.shape[1];
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_6);
__Pyx_XDECREF(__pyx_t_8);
__Pyx_XDECREF(__pyx_t_11);
__Pyx_XDECREF(__pyx_t_12);
__Pyx_XDECREF(__pyx_t_14);
__Pyx_XDECREF(__pyx_t_15);
__PYX_XDEC_MEMVIEW(&__pyx_t_16, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_17, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_19, 1);
__Pyx_XDECREF(__pyx_t_31);
__Pyx_XDECREF(__pyx_t_32);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VIn.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPoly.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.SLOW_LOS_Calc_PInOut_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = NULL;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VIn.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPoly.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF(__pyx_v_C1);
__Pyx_XDECREF(__pyx_v_C2);
__Pyx_XDECREF(__pyx_v_v);
__Pyx_XDECREF(__pyx_v_NL);
__Pyx_XDECREF(__pyx_v_IOut);
__Pyx_XDECREF(__pyx_v_PIn);
__Pyx_XDECREF(__pyx_v_POut);
__Pyx_XDECREF(__pyx_v_VperpIn);
__Pyx_XDECREF(__pyx_v_VperpOut);
__Pyx_XDECREF(__pyx_v_IIn);
__Pyx_XDECREF(__pyx_v_kPOut);
__Pyx_XDECREF(__pyx_v_kPIn);
__Pyx_XDECREF(__pyx_v_Ind);
__Pyx_XDECREF(__pyx_v_lslim);
__Pyx_XDECREF(__pyx_v_pIn);
__Pyx_XDECREF(__pyx_v_pOut);
__Pyx_XDECREF(__pyx_v_vperpIn);
__Pyx_XDECREF(__pyx_v_vperpOut);
__Pyx_XDECREF(__pyx_v_iIn);
__Pyx_XDECREF(__pyx_v_iOut);
__Pyx_XDECREF(__pyx_v_kpin);
__Pyx_XDECREF(__pyx_v_indNoNan);
__Pyx_XDECREF(__pyx_v_indout);
__Pyx_XDECREF(__pyx_v_pp);
__Pyx_XDECREF(__pyx_v_ee);
__Pyx_XDECREF(__pyx_v_ll);
__Pyx_XDECREF(__pyx_v_Ds);
__Pyx_XDECREF(__pyx_v_dus);
__Pyx_XDECREF(__pyx_v_Lim);
__Pyx_XDECREF(__pyx_v_RMin);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
__pyx_tuple__240 = PyTuple_Pack(48, __pyx_n_s_Ds, __pyx_n_s_dus, __pyx_n_s_VPoly, __pyx_n_s_VIn, __pyx_n_s_Lim, __pyx_n_s_nLim, __pyx_n_s_LSPoly, __pyx_n_s_LSLim, __pyx_n_s_lSnLim, __pyx_n_s_LSVIn, __pyx_n_s_RMin, __pyx_n_s_Forbid, __pyx_n_s_EpsUz, __pyx_n_s_EpsVz, __pyx_n_s_EpsA, __pyx_n_s_EpsB, __pyx_n_s_EpsPlane, __pyx_n_s_VType, __pyx_n_s_Test, __pyx_n_s_warn, __pyx_n_s_C1, __pyx_n_s_C2, __pyx_n_s_ii, __pyx_n_s_jj, __pyx_n_s_v, __pyx_n_s_NL, __pyx_n_s_IOut, __pyx_n_s_PIn, __pyx_n_s_POut, __pyx_n_s_VperpIn, __pyx_n_s_VperpOut, __pyx_n_s_IIn, __pyx_n_s_kPOut, __pyx_n_s_kPIn, __pyx_n_s_Ind, __pyx_n_s_lslim, __pyx_n_s_pIn, __pyx_n_s_pOut, __pyx_n_s_vperpIn, __pyx_n_s_vperpOut, __pyx_n_s_iIn, __pyx_n_s_iOut, __pyx_n_s_kpin, __pyx_n_s_indNoNan, __pyx_n_s_indout, __pyx_n_s_pp, __pyx_n_s_ee, __pyx_n_s_ll); if (unlikely(!__pyx_tuple__240)) __PYX_ERR(0, 6883, __pyx_L1_error)
__Pyx_GOTREF(__pyx_tuple__240);
__Pyx_GIVEREF(__pyx_tuple__240);
/* … */
__pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4tofu_4geom_5_GG03_83SLOW_LOS_Calc_PInOut_VesStruct, NULL, __pyx_n_s_tofu_geom__GG03); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6883, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
if (PyDict_SetItem(__pyx_d, __pyx_n_s_SLOW_LOS_Calc_PInOut_VesStruct, __pyx_t_2) < 0) __PYX_ERR(0, 6883, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_codeobj__241 = (PyObject*)__Pyx_PyCode_New(19, 0, 48, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__240, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_tofu_geom__GG03_pyx, __pyx_n_s_SLOW_LOS_Calc_PInOut_VesStruct, 6883, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__241)) __PYX_ERR(0, 6883, __pyx_L1_error)
6884: np.ndarray[double, ndim=2,mode='c'] VPoly,
6885: np.ndarray[double, ndim=2,mode='c'] VIn,
+6886: Lim=None, nLim=None,
values[4] = ((PyObject *)Py_None);
values[5] = ((PyObject *)Py_None);
+6887: LSPoly=None, LSLim=None, lSnLim=None, LSVIn=None,
values[6] = ((PyObject *)Py_None);
values[7] = ((PyObject *)Py_None);
values[8] = ((PyObject *)Py_None);
values[9] = ((PyObject *)Py_None);
+6888: RMin=None, Forbid=True,
values[10] = ((PyObject *)Py_None);
values[11] = ((PyObject *)Py_True);
values[12] = __pyx_k__124;
values[13] = __pyx_k__125;
values[14] = __pyx_k__126;
values[15] = __pyx_k__127;
values[16] = __pyx_k__128;
values[17] = ((PyObject *)__pyx_n_s_Tor);
+6889: EpsUz=_SMALL, EpsVz=_VSMALL, EpsA=_VSMALL,
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__SMALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_k__124 = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_k__125 = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6889, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_k__126 = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+6890: EpsB=_VSMALL, EpsPlane=_VSMALL,
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_k__127 = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(__pyx_v_4tofu_4geom_5_GG03__VSMALL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_k__128 = __pyx_t_2; __Pyx_GIVEREF(__pyx_t_2); __pyx_t_2 = 0;
+6891: VType='Tor', Test=True):
values[18] = ((PyObject *)Py_True);
if (unlikely(__pyx_kwds)) {
Py_ssize_t kw_args;
const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
switch (pos_args) {
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
CYTHON_FALLTHROUGH;
case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
CYTHON_FALLTHROUGH;
case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
CYTHON_FALLTHROUGH;
case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
CYTHON_FALLTHROUGH;
case 0: break;
default: goto __pyx_L5_argtuple_error;
}
kw_args = PyDict_Size(__pyx_kwds);
switch (pos_args) {
case 0:
if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ds)) != 0)) kw_args--;
else goto __pyx_L5_argtuple_error;
CYTHON_FALLTHROUGH;
case 1:
if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dus)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("SLOW_LOS_Calc_PInOut_VesStruct", 0, 4, 19, 1); __PYX_ERR(0, 6883, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 2:
if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VPoly)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("SLOW_LOS_Calc_PInOut_VesStruct", 0, 4, 19, 2); __PYX_ERR(0, 6883, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 3:
if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VIn)) != 0)) kw_args--;
else {
__Pyx_RaiseArgtupleInvalid("SLOW_LOS_Calc_PInOut_VesStruct", 0, 4, 19, 3); __PYX_ERR(0, 6883, __pyx_L3_error)
}
CYTHON_FALLTHROUGH;
case 4:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Lim);
if (value) { values[4] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 5:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nLim);
if (value) { values[5] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 6:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSPoly);
if (value) { values[6] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 7:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSLim);
if (value) { values[7] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 8:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lSnLim);
if (value) { values[8] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 9:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_LSVIn);
if (value) { values[9] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 10:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RMin);
if (value) { values[10] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 11:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Forbid);
if (value) { values[11] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 12:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsUz);
if (value) { values[12] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 13:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsVz);
if (value) { values[13] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 14:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsA);
if (value) { values[14] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 15:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsB);
if (value) { values[15] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 16:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_EpsPlane);
if (value) { values[16] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 17:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_VType);
if (value) { values[17] = value; kw_args--; }
}
CYTHON_FALLTHROUGH;
case 18:
if (kw_args > 0) {
PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Test);
if (value) { values[18] = value; kw_args--; }
}
}
if (unlikely(kw_args > 0)) {
if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SLOW_LOS_Calc_PInOut_VesStruct") < 0)) __PYX_ERR(0, 6883, __pyx_L3_error)
}
} else {
switch (PyTuple_GET_SIZE(__pyx_args)) {
case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
CYTHON_FALLTHROUGH;
case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
CYTHON_FALLTHROUGH;
case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
CYTHON_FALLTHROUGH;
case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
CYTHON_FALLTHROUGH;
case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
CYTHON_FALLTHROUGH;
case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
CYTHON_FALLTHROUGH;
case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
CYTHON_FALLTHROUGH;
case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
CYTHON_FALLTHROUGH;
case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
CYTHON_FALLTHROUGH;
case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
CYTHON_FALLTHROUGH;
case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
CYTHON_FALLTHROUGH;
case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
CYTHON_FALLTHROUGH;
case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
CYTHON_FALLTHROUGH;
case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
CYTHON_FALLTHROUGH;
case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
CYTHON_FALLTHROUGH;
case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
break;
default: goto __pyx_L5_argtuple_error;
}
}
__pyx_v_Ds = values[0];
__pyx_v_dus = values[1];
__pyx_v_VPoly = ((PyArrayObject *)values[2]);
__pyx_v_VIn = ((PyArrayObject *)values[3]);
__pyx_v_Lim = values[4];
__pyx_v_nLim = values[5];
__pyx_v_LSPoly = values[6];
__pyx_v_LSLim = values[7];
__pyx_v_lSnLim = values[8];
__pyx_v_LSVIn = values[9];
__pyx_v_RMin = values[10];
__pyx_v_Forbid = values[11];
__pyx_v_EpsUz = values[12];
__pyx_v_EpsVz = values[13];
__pyx_v_EpsA = values[14];
__pyx_v_EpsB = values[15];
__pyx_v_EpsPlane = values[16];
__pyx_v_VType = values[17];
__pyx_v_Test = values[18];
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L5_argtuple_error:;
__Pyx_RaiseArgtupleInvalid("SLOW_LOS_Calc_PInOut_VesStruct", 0, 4, 19, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 6883, __pyx_L3_error)
__pyx_L3_error:;
__Pyx_AddTraceback("tofu.geom._GG03.SLOW_LOS_Calc_PInOut_VesStruct", __pyx_clineno, __pyx_lineno, __pyx_filename);
__Pyx_RefNannyFinishContext();
return NULL;
__pyx_L4_argument_unpacking_done:;
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_VPoly), __pyx_ptype_5numpy_ndarray, 1, "VPoly", 0))) __PYX_ERR(0, 6884, __pyx_L1_error)
if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_VIn), __pyx_ptype_5numpy_ndarray, 1, "VIn", 0))) __PYX_ERR(0, 6885, __pyx_L1_error)
__pyx_r = __pyx_pf_4tofu_4geom_5_GG03_82SLOW_LOS_Calc_PInOut_VesStruct(__pyx_self, __pyx_v_Ds, __pyx_v_dus, __pyx_v_VPoly, __pyx_v_VIn, __pyx_v_Lim, __pyx_v_nLim, __pyx_v_LSPoly, __pyx_v_LSLim, __pyx_v_lSnLim, __pyx_v_LSVIn, __pyx_v_RMin, __pyx_v_Forbid, __pyx_v_EpsUz, __pyx_v_EpsVz, __pyx_v_EpsA, __pyx_v_EpsB, __pyx_v_EpsPlane, __pyx_v_VType, __pyx_v_Test);
6892:
+6893: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6893, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6894: warn("THIS IS THE OLD VERSION OF THIS FUNCTION, PLEASE USE THE NEW ONE",
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__129, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6894, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__129 = PyTuple_Pack(2, __pyx_kp_s_THIS_IS_THE_OLD_VERSION_OF_THIS, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 6894, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__129); __Pyx_GIVEREF(__pyx_tuple__129);
+6895: DeprecationWarning, stacklevel=2)
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_stacklevel, __pyx_int_2) < 0) __PYX_ERR(0, 6895, __pyx_L1_error)
+6896: warn("THIS IS THE OLD VERSION OF THIS FUNCTION, PLEASE USE THE NEW ONE",
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__130, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__130 = PyTuple_Pack(2, __pyx_kp_s_THIS_IS_THE_OLD_VERSION_OF_THIS, __pyx_builtin_Warning); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(0, 6896, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__130); __Pyx_GIVEREF(__pyx_tuple__130);
6897: Warning)
6898: """ Compute the entry and exit point of all provided LOS for the provided
6899: vessel polygon (toroidal or linear), also return the normal vector at
6900: impact point and the index of the impact segment
6901:
6902: For each LOS,
6903:
6904: Parameters
6905: ----------
6906:
6907:
6908:
6909: Return
6910: ------
6911: PIn : np.ndarray
6912: Point of entry (if any) of the LOS into the vessel, returned in (X,Y,Z)
6913: cartesian coordinates as:
6914: 1 LOS => (3,) array or None if there is no entry point
6915: NL LOS => (3,NL), with NaNs when there is no entry point
6916: POut : np.ndarray
6917: Point of exit of the LOS from the vessel, returned in (X,Y,Z) cartesian
6918: coordinates as:
6919: 1 LOS => (3,) array or None if there is no entry point
6920: NL LOS => (3,NL), with NaNs when there is no entry point
6921: VOut : np.ndarray
6922:
6923: IOut : np.ndarray
6924:
6925: """
+6926: if Test:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_Test); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6926, __pyx_L1_error) if (__pyx_t_3) { /* … */ }
+6927: assert type(Ds) is np.ndarray and type(dus) is np.ndarray and \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_Ds)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_5 = (__pyx_t_4 != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L4_bool_binop_done;
}
__pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_dus)) == ((PyObject *)__pyx_ptype_5numpy_ndarray));
__pyx_t_4 = (__pyx_t_5 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L4_bool_binop_done;
}
+6928: Ds.ndim in [1,2] and Ds.shape==dus.shape and \
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!__pyx_t_5) { } else { __pyx_t_4 = __pyx_t_5; goto __pyx_L8_bool_binop_done; } __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_4 = __pyx_t_5; __pyx_L8_bool_binop_done:; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_5 = (__pyx_t_4 != 0); if (__pyx_t_5) { } else { __pyx_t_3 = __pyx_t_5; goto __pyx_L4_bool_binop_done; } __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dus, __pyx_n_s_shape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6928, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_5) { } else { __pyx_t_3 = __pyx_t_5; goto __pyx_L4_bool_binop_done; }
+6929: Ds.shape[0]==3, (
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_shape); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6929, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_3 = __pyx_t_5; __pyx_L4_bool_binop_done:; if (unlikely(!__pyx_t_3)) { PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_Ds_and_dus_must_be_of_the_s); __PYX_ERR(0, 6927, __pyx_L1_error) } } #endif
6930: "Args Ds and dus must be of the same shape (3,) or (3,NL)!")
+6931: assert VPoly.shape[0]==2 and VIn.shape[0]==2 and \
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (((__pyx_v_VPoly->dimensions[0]) == 2) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L11_bool_binop_done;
}
__pyx_t_5 = (((__pyx_v_VIn->dimensions[0]) == 2) != 0);
if (__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L11_bool_binop_done;
}
+6932: VIn.shape[1]==VPoly.shape[1]-1, (
__pyx_t_5 = (((__pyx_v_VIn->dimensions[1]) == ((__pyx_v_VPoly->dimensions[1]) - 1)) != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L11_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_VPoly_and_VIn_must_be_of_th);
__PYX_ERR(0, 6931, __pyx_L1_error)
}
}
#endif
6933: "Args VPoly and VIn must be of the same shape (2,NS)!")
+6934: C1 = all([pp is None for pp in [LSPoly,LSLim,LSVIn]])
__pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_v_LSPoly); __Pyx_GIVEREF(__pyx_v_LSPoly); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_LSPoly); __Pyx_INCREF(__pyx_v_LSLim); __Pyx_GIVEREF(__pyx_v_LSLim); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_LSLim); __Pyx_INCREF(__pyx_v_LSVIn); __Pyx_GIVEREF(__pyx_v_LSVIn); PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_LSVIn); __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; for (;;) { if (__pyx_t_7 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6934, __pyx_L1_error) #else __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = (__pyx_v_pp == Py_None); __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 6934, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_v_C1 = __pyx_t_1; __pyx_t_1 = 0;
+6935: C2 = all([hasattr(pp,'__iter__') and len(pp)==len(LSPoly) for pp
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_3 = __Pyx_HasAttr(__pyx_v_pp, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 6935, __pyx_L1_error) if (__pyx_t_3) { } else { __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __pyx_t_8; __pyx_t_8 = 0; goto __pyx_L18_bool_binop_done; } __pyx_t_9 = PyObject_Length(__pyx_v_pp); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6935, __pyx_L1_error) __pyx_t_10 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6935, __pyx_L1_error) __pyx_t_3 = (__pyx_t_9 == __pyx_t_10); __pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = __pyx_t_8; __pyx_t_8 = 0; __pyx_L18_bool_binop_done:; if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_6))) __PYX_ERR(0, 6935, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6935, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_C2 = __pyx_t_2; __pyx_t_2 = 0;
+6936: in [LSPoly,LSLim,LSVIn]])
__pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_v_LSPoly); __Pyx_GIVEREF(__pyx_v_LSPoly); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_LSPoly); __Pyx_INCREF(__pyx_v_LSLim); __Pyx_GIVEREF(__pyx_v_LSLim); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_LSLim); __Pyx_INCREF(__pyx_v_LSVIn); __Pyx_GIVEREF(__pyx_v_LSVIn); PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_LSVIn); __pyx_t_2 = __pyx_t_6; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; for (;;) { if (__pyx_t_7 >= 3) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6936, __pyx_L1_error) #else __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); #endif __Pyx_XDECREF_SET(__pyx_v_pp, __pyx_t_6); __pyx_t_6 = 0;
+6937: assert C1 or C2, "Args LSPoly,LSLim,LSVIn must be None or lists of same len()!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_C1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6937, __pyx_L1_error)
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L20_bool_binop_done;
}
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_C2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6937, __pyx_L1_error)
__pyx_t_3 = __pyx_t_5;
__pyx_L20_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_LSPoly_LSLim_LSVIn_must_be);
__PYX_ERR(0, 6937, __pyx_L1_error)
}
}
#endif
+6938: assert RMin is None or type(RMin) in [float,int,np.float64,np.int64], (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_5 = (__pyx_v_RMin == Py_None);
__pyx_t_4 = (__pyx_t_5 != 0);
if (!__pyx_t_4) {
} else {
__pyx_t_3 = __pyx_t_4;
goto __pyx_L22_bool_binop_done;
}
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_RMin)));
__pyx_t_2 = ((PyObject *)Py_TYPE(__pyx_v_RMin));
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_2), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6938, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!__pyx_t_5) {
} else {
__pyx_t_4 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_2), ((PyObject *)(&PyInt_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6938, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!__pyx_t_5) {
} else {
__pyx_t_4 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_float64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_2), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (!__pyx_t_5) {
} else {
__pyx_t_4 = __pyx_t_5;
goto __pyx_L24_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_int64); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyObject_RichCompare(((PyObject *)__pyx_t_2), __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6938, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_4 = __pyx_t_5;
__pyx_L24_bool_binop_done:;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = (__pyx_t_4 != 0);
__pyx_t_3 = __pyx_t_5;
__pyx_L22_bool_binop_done:;
if (unlikely(!__pyx_t_3)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_RMin_must_be_None_or_a_float);
__PYX_ERR(0, 6938, __pyx_L1_error)
}
}
#endif
6939: "Arg RMin must be None or a float!")
+6940: assert type(Forbid) is bool, "Arg Forbid must be a bool!"
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_Forbid)) == ((PyObject *)__pyx_ptype_7cpython_4bool_bool));
if (unlikely(!(__pyx_t_3 != 0))) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_Forbid_must_be_a_bool);
__PYX_ERR(0, 6940, __pyx_L1_error)
}
}
#endif
+6941: assert all([type(ee) in [int,float,np.int64,np.float64] and ee<1.e-4
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
/* … */
__Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_ee)));
__pyx_t_8 = ((PyObject *)Py_TYPE(__pyx_v_ee));
__pyx_t_11 = PyObject_RichCompare(((PyObject *)__pyx_t_8), ((PyObject *)(&PyInt_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6941, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L32_bool_binop_done;
}
__pyx_t_11 = PyObject_RichCompare(((PyObject *)__pyx_t_8), ((PyObject *)(&PyFloat_Type)), Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6941, __pyx_L1_error)
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L32_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_int64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyObject_RichCompare(((PyObject *)__pyx_t_8), __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
if (!__pyx_t_5) {
} else {
__pyx_t_3 = __pyx_t_5;
goto __pyx_L32_bool_binop_done;
}
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_float64); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_11 = PyObject_RichCompare(((PyObject *)__pyx_t_8), __pyx_t_12, Py_EQ); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_3 = __pyx_t_5;
__pyx_L32_bool_binop_done:;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_5 = __pyx_t_3;
if (__pyx_t_5) {
} else {
__pyx_t_8 = __Pyx_PyBool_FromLong(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
__pyx_t_8 = 0;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_8 = PyObject_RichCompare(__pyx_v_ee, __pyx_float_1_eneg_4, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_INCREF(__pyx_t_8);
__pyx_t_1 = __pyx_t_8;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_L30_bool_binop_done:;
if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
__pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6941, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Args_EpsUz_EpsVz_EpsA_EpsB_must);
__PYX_ERR(0, 6941, __pyx_L1_error)
}
}
#endif
+6942: for ee in [EpsUz,EpsVz,EpsA,EpsB,EpsPlane]]), \
__pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_EpsUz); __Pyx_GIVEREF(__pyx_v_EpsUz); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_EpsUz); __Pyx_INCREF(__pyx_v_EpsVz); __Pyx_GIVEREF(__pyx_v_EpsVz); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_EpsVz); __Pyx_INCREF(__pyx_v_EpsA); __Pyx_GIVEREF(__pyx_v_EpsA); PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_EpsA); __Pyx_INCREF(__pyx_v_EpsB); __Pyx_GIVEREF(__pyx_v_EpsB); PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_EpsB); __Pyx_INCREF(__pyx_v_EpsPlane); __Pyx_GIVEREF(__pyx_v_EpsPlane); PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_v_EpsPlane); __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (__pyx_t_7 >= 5) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 6942, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif __Pyx_XDECREF_SET(__pyx_v_ee, __pyx_t_1); __pyx_t_1 = 0; /* … */ } __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6943: "Args [EpsUz,EpsVz,EpsA,EpsB] must be floats < 1.e-4!"
+6944: assert type(VType) is str and VType.lower() in ['tor','lin'], (
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_VType)) == ((PyObject *)(&PyString_Type)));
__pyx_t_4 = (__pyx_t_3 != 0);
if (__pyx_t_4) {
} else {
__pyx_t_5 = __pyx_t_4;
goto __pyx_L36_bool_binop_done;
}
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_VType, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6944, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = NULL;
if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
__pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
if (likely(__pyx_t_1)) {
PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
__Pyx_INCREF(__pyx_t_1);
__Pyx_INCREF(function);
__Pyx_DECREF_SET(__pyx_t_2, function);
}
}
__pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6944, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6944, __pyx_L1_error)
if (!__pyx_t_3) {
} else {
__pyx_t_4 = __pyx_t_3;
goto __pyx_L38_bool_binop_done;
}
__pyx_t_3 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_n_s_lin, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6944, __pyx_L1_error)
__pyx_t_4 = __pyx_t_3;
__pyx_L38_bool_binop_done:;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_3 = (__pyx_t_4 != 0);
__pyx_t_5 = __pyx_t_3;
__pyx_L36_bool_binop_done:;
if (unlikely(!__pyx_t_5)) {
PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_Arg_VType_must_be_a_str_in_Tor_L_2);
__PYX_ERR(0, 6944, __pyx_L1_error)
}
}
#endif
6945: "Arg VType must be a str in ['Tor','Lin']!")
6946:
6947: cdef int ii, jj
6948:
+6949: print("\n ---- > Using the WRONG one !!!!!!!\n")
if (__Pyx_PrintOne(0, __pyx_kp_s_Using_the_WRONG_one) < 0) __PYX_ERR(0, 6949, __pyx_L1_error)
+6950: if nLim==0:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_nLim, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6950, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6950, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L40; }
+6951: Lim = None
__Pyx_INCREF(Py_None); __Pyx_DECREF_SET(__pyx_v_Lim, Py_None);
+6952: elif nLim==1:
__pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_nLim, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6952, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6952, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_5) { /* … */ } __pyx_L40:;
+6953: Lim = [Lim[0,0],Lim[0,1]]
__pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__33); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_Lim, __pyx_tuple__34); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6953, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); __pyx_t_6 = 0; __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_Lim, __pyx_t_1); __pyx_t_1 = 0;
+6954: if lSnLim is not None:
__pyx_t_5 = (__pyx_v_lSnLim != Py_None);
__pyx_t_3 = (__pyx_t_5 != 0);
if (__pyx_t_3) {
/* … */
}
+6955: for ii in range(0,len(lSnLim)):
__pyx_t_7 = PyObject_Length(__pyx_v_lSnLim); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6955, __pyx_L1_error) __pyx_t_10 = __pyx_t_7; for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) { __pyx_v_ii = __pyx_t_13;
+6956: if lSnLim[ii]==0:
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_lSnLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6956, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6956, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { /* … */ goto __pyx_L44; }
+6957: LSLim[ii] = None
if (unlikely(__Pyx_SetItemInt(__pyx_v_LSLim, __pyx_v_ii, Py_None, int, 1, __Pyx_PyInt_From_int, 0, 0, 0) < 0)) __PYX_ERR(0, 6957, __pyx_L1_error)
+6958: elif lSnLim[ii]==1:
__pyx_t_2 = __Pyx_GetItemInt(__pyx_v_lSnLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6958, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_3) { /* … */ } __pyx_L44:; }
+6959: LSLim[ii] = [LSLim[ii][0,0],LSLim[ii][0,1]]
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_tuple__33); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_tuple__34); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); __pyx_t_2 = 0; __pyx_t_6 = 0; if (unlikely(__Pyx_SetItemInt(__pyx_v_LSLim, __pyx_v_ii, __pyx_t_1, int, 1, __Pyx_PyInt_From_int, 0, 0, 0) < 0)) __PYX_ERR(0, 6959, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6960:
+6961: v = Ds.ndim==2
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6961, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_v = __pyx_t_6; __pyx_t_6 = 0;
+6962: if not v:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_v); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6962, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_3) != 0); if (__pyx_t_5) { /* … */ }
+6963: Ds, dus = Ds.reshape((3,1)), dus.reshape((3,1))
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_reshape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dus, __pyx_n_s_reshape); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_tuple__49) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_tuple__49); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_Ds, __pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_dus, __pyx_t_1); __pyx_t_1 = 0;
+6964: NL = Ds.shape[1]
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_NL = __pyx_t_6; __pyx_t_6 = 0;
+6965: IOut = np.zeros((3,Ds.shape[1]))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_Ds, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_IOut = __pyx_t_6; __pyx_t_6 = 0;
+6966: if VType.lower()=='tor':
__pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_VType, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6966, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_t_6, __pyx_n_s_tor, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6966, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_5) { /* … */ goto __pyx_L46; }
6967: # RMin is necessary to avoid looking on the other side of the tokamak
+6968: if RMin is None:
__pyx_t_5 = (__pyx_v_RMin == Py_None);
__pyx_t_3 = (__pyx_t_5 != 0);
if (__pyx_t_3) {
/* … */
}
+6969: RMin = 0.95*min(np.min(VPoly[0,:]),
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_min); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_VPoly), __pyx_tuple__36); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_15, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_2); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_6 = PyNumber_Multiply(__pyx_float_0_95, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF_SET(__pyx_v_RMin, __pyx_t_6); __pyx_t_6 = 0;
+6970: np.min(np.hypot(Ds[0,:],Ds[1,:])))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_hypot); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_Ds, __pyx_tuple__36); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_Ds, __pyx_tuple__42); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = NULL; __pyx_t_13 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); __pyx_t_13 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_8, __pyx_t_12}; __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) { PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_t_8, __pyx_t_12}; __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_13, 2+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else #endif { __pyx_t_15 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (__pyx_t_14) { __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL; } __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_13, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_13, __pyx_t_12); __pyx_t_8 = 0; __pyx_t_12 = 0; __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_11, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6970, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6970, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_3) { __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = __pyx_t_6; } else { __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = __pyx_t_1; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
6971:
6972: # Main function to compute intersections with Vessel
+6973: PIn, POut, \
__pyx_v_PIn = __pyx_t_11;
__pyx_t_11 = 0;
__pyx_v_POut = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_v_VperpIn = __pyx_t_2;
__pyx_t_2 = 0;
__pyx_v_VperpOut = __pyx_t_15;
__pyx_t_15 = 0;
__pyx_v_IIn = __pyx_t_12;
__pyx_t_12 = 0;
6974: VperpIn, VperpOut, \
+6975: IIn, IOut[2,:] = Calc_LOS_PInOut_Tor(Ds, dus, VPoly, VIn, Lim=Lim,
__pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_Ds, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 6975, __pyx_L1_error) __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_dus, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 6975, __pyx_L1_error) __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPoly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_18.memview)) __PYX_ERR(0, 6975, __pyx_L1_error) __pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VIn), PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 6975, __pyx_L1_error) /* … */ __pyx_t_25.__pyx_n = 8; __pyx_t_25.Lim = __pyx_v_Lim; __pyx_t_25.Forbid = ((PyBoolObject *)__pyx_v_Forbid); __pyx_t_25.RMin = __pyx_v_RMin; __pyx_t_25.EpsUz = __pyx_t_20; __pyx_t_25.EpsVz = __pyx_t_21; __pyx_t_25.EpsA = __pyx_t_22; __pyx_t_25.EpsB = __pyx_t_23; __pyx_t_25.EpsPlane = __pyx_t_24; __pyx_t_6 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor(__pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_t_19, &__pyx_t_25); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __PYX_XDEC_MEMVIEW(&__pyx_t_16, 1); __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_17, 1); __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1); __pyx_t_18.memview = NULL; __pyx_t_18.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { PyObject* sequence = __pyx_t_6; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6973, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_15 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_11 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); __pyx_t_2 = PyList_GET_ITEM(sequence, 2); __pyx_t_15 = PyList_GET_ITEM(sequence, 3); __pyx_t_12 = PyList_GET_ITEM(sequence, 4); __pyx_t_8 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_11,&__pyx_t_1,&__pyx_t_2,&__pyx_t_15,&__pyx_t_12,&__pyx_t_8}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 6973, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_11,&__pyx_t_1,&__pyx_t_2,&__pyx_t_15,&__pyx_t_12,&__pyx_t_8}; __pyx_t_14 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 6973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_26 = Py_TYPE(__pyx_t_14)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_26(__pyx_t_14); if (unlikely(!item)) goto __pyx_L48_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_26(__pyx_t_14), 6) < 0) __PYX_ERR(0, 6973, __pyx_L1_error) __pyx_t_26 = NULL; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L49_unpacking_done; __pyx_L48_unpacking_failed:; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_26 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6973, __pyx_L1_error) __pyx_L49_unpacking_done:; } /* … */ if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_tuple__32, __pyx_t_8) < 0)) __PYX_ERR(0, 6975, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+6976: Forbid=Forbid, RMin=RMin,
if (!(likely(((__pyx_v_Forbid) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_Forbid, __pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 6976, __pyx_L1_error)
+6977: EpsUz=EpsUz, EpsVz=EpsVz,
__pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_v_EpsUz); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6977, __pyx_L1_error) __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_v_EpsVz); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6977, __pyx_L1_error)
+6978: EpsA=EpsA, EpsB=EpsB,
__pyx_t_22 = __pyx_PyFloat_AsDouble(__pyx_v_EpsA); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6978, __pyx_L1_error) __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_v_EpsB); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6978, __pyx_L1_error)
+6979: EpsPlane=EpsPlane)
__pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 6979, __pyx_L1_error)
6980:
6981: # k = coordinate (in m) along the line from D
+6982: kPOut = np.sqrt(np.sum((POut-Ds)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sum); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Subtract(__pyx_v_POut, __pyx_v_Ds); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_2 = PyNumber_Power(__pyx_t_8, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 6982, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_6 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6982, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_v_kPOut = __pyx_t_6; __pyx_t_6 = 0;
+6983: kPIn = np.sqrt(np.sum((PIn-Ds)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Subtract(__pyx_v_PIn, __pyx_v_Ds); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_8 = PyNumber_Power(__pyx_t_12, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 6983, __pyx_L1_error) __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_kPIn = __pyx_t_6; __pyx_t_6 = 0;
+6984: assert np.allclose(kPOut,np.sum((POut-Ds)*dus,axis=0),equal_nan=True)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_allclose); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sum); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Subtract(__pyx_v_POut, __pyx_v_Ds); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = PyNumber_Multiply(__pyx_t_6, __pyx_v_dus); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 6984, __pyx_L1_error)
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_INCREF(__pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_v_kPOut);
PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_t_12);
PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_12);
__pyx_t_12 = 0;
__pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_equal_nan, Py_True) < 0) __PYX_ERR(0, 6984, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6984, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_3)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6984, __pyx_L1_error)
}
}
#endif
+6985: assert np.allclose(kPIn,np.sum((PIn-Ds)*dus,axis=0),equal_nan=True)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_allclose); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sum); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Subtract(__pyx_v_PIn, __pyx_v_Ds); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_6, __pyx_v_dus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 6985, __pyx_L1_error)
__pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_kPIn);
__Pyx_GIVEREF(__pyx_v_kPIn);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kPIn);
__Pyx_GIVEREF(__pyx_t_15);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_15);
__pyx_t_15 = 0;
__pyx_t_15 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_15);
if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_equal_nan, Py_True) < 0) __PYX_ERR(0, 6985, __pyx_L1_error)
__pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6985, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
if (unlikely(!__pyx_t_3)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 6985, __pyx_L1_error)
}
}
#endif
6986:
6987: # If there are Struct, call the same function
6988: # Structural optimzation : do everything in one big for loop and only
6989: # keep the relevant points (to save memory)
+6990: if LSPoly is not None:
__pyx_t_3 = (__pyx_v_LSPoly != Py_None);
__pyx_t_5 = (__pyx_t_3 != 0);
if (__pyx_t_5) {
/* … */
}
+6991: Ind = np.zeros((2,NL))
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_2); __Pyx_INCREF(__pyx_v_NL); __Pyx_GIVEREF(__pyx_v_NL); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_NL); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6991, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Ind = __pyx_t_6; __pyx_t_6 = 0;
+6992: for ii in range(0,len(LSPoly)):
__pyx_t_7 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6992, __pyx_L1_error) __pyx_t_10 = __pyx_t_7; for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) { __pyx_v_ii = __pyx_t_13;
+6993: if LSLim[ii] is None or not all([hasattr(ll,'__iter__') for ll in LSLim[ii]]):
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_3 = (__pyx_t_6 == Py_None); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = (__pyx_t_3 != 0); if (!__pyx_t_4) { } else { __pyx_t_5 = __pyx_t_4; goto __pyx_L54_bool_binop_done; } __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { __pyx_t_15 = __pyx_t_1; __Pyx_INCREF(__pyx_t_15); __pyx_t_9 = 0; __pyx_t_27 = NULL; } else { __pyx_t_9 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_27 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 6993, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (;;) { if (likely(!__pyx_t_27)) { if (likely(PyList_CheckExact(__pyx_t_15))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 6993, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_15)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 6993, __pyx_L1_error) #else __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); #endif } } else { __pyx_t_1 = __pyx_t_27(__pyx_t_15); if (unlikely(!__pyx_t_1)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 6993, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_1); } __Pyx_XDECREF_SET(__pyx_v_ll, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __Pyx_HasAttr(__pyx_v_ll, __pyx_n_s_iter); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(0, 6993, __pyx_L1_error) __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 6993, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_3 = ((!__pyx_t_4) != 0); __pyx_t_5 = __pyx_t_3; __pyx_L54_bool_binop_done:; if (__pyx_t_5) { /* … */ goto __pyx_L53; }
+6994: lslim = [LSLim[ii]]
__pyx_t_15 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 6994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_15); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_6); __pyx_t_6 = 0;
6995: else:
+6996: lslim = LSLim[ii]
/*else*/ {
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6996, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_6);
__pyx_t_6 = 0;
}
__pyx_L53:;
+6997: for jj in range(0,len(lslim)):
__pyx_t_9 = PyObject_Length(__pyx_v_lslim); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 6997, __pyx_L1_error) __pyx_t_28 = __pyx_t_9; for (__pyx_t_29 = 0; __pyx_t_29 < __pyx_t_28; __pyx_t_29+=1) { __pyx_v_jj = __pyx_t_29;
+6998: pIn, pOut,\
__Pyx_XDECREF_SET(__pyx_v_pIn, __pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_pOut, __pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_vperpIn, __pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_vperpOut, __pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v_iIn, __pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_iOut, __pyx_t_11); __pyx_t_11 = 0;
6999: vperpIn, vperpOut,\
+7000: iIn, iOut = Calc_LOS_PInOut_Tor(Ds, dus, LSPoly[ii],
__pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_Ds, PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 7000, __pyx_L1_error) __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_dus, PyBUF_WRITABLE); if (unlikely(!__pyx_t_18.memview)) __PYX_ERR(0, 7000, __pyx_L1_error) __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_LSPoly, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_6, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 7000, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* … */ __pyx_t_25.__pyx_n = 8; __pyx_t_25.Lim = __pyx_t_6; __pyx_t_25.Forbid = ((PyBoolObject *)__pyx_v_Forbid); __pyx_t_25.RMin = __pyx_v_RMin; __pyx_t_25.EpsUz = __pyx_t_24; __pyx_t_25.EpsVz = __pyx_t_23; __pyx_t_25.EpsA = __pyx_t_22; __pyx_t_25.EpsB = __pyx_t_21; __pyx_t_25.EpsPlane = __pyx_t_20; __pyx_t_15 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor(__pyx_t_19, __pyx_t_18, __pyx_t_17, __pyx_t_16, &__pyx_t_25); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7000, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1); __pyx_t_18.memview = NULL; __pyx_t_18.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_17, 1); __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_16, 1); __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_15))) || (PyList_CheckExact(__pyx_t_15))) { PyObject* sequence = __pyx_t_15; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 6998, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_6 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); __pyx_t_12 = PyList_GET_ITEM(sequence, 2); __pyx_t_8 = PyList_GET_ITEM(sequence, 3); __pyx_t_2 = PyList_GET_ITEM(sequence, 4); __pyx_t_11 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_11); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_6,&__pyx_t_1,&__pyx_t_12,&__pyx_t_8,&__pyx_t_2,&__pyx_t_11}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 6998, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_6,&__pyx_t_1,&__pyx_t_12,&__pyx_t_8,&__pyx_t_2,&__pyx_t_11}; __pyx_t_14 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 6998, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_26 = Py_TYPE(__pyx_t_14)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_26(__pyx_t_14); if (unlikely(!item)) goto __pyx_L60_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_26(__pyx_t_14), 6) < 0) __PYX_ERR(0, 6998, __pyx_L1_error) __pyx_t_26 = NULL; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L61_unpacking_done; __pyx_L60_unpacking_failed:; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_26 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 6998, __pyx_L1_error) __pyx_L61_unpacking_done:; }
+7001: LSVIn[ii], Lim=lslim[jj],
__pyx_t_6 = __Pyx_GetItemInt(__pyx_v_LSVIn, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_6, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 7001, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6);
+7002: Forbid=Forbid, RMin=RMin,
if (!(likely(((__pyx_v_Forbid) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_Forbid, __pyx_ptype_7cpython_4bool_bool))))) __PYX_ERR(0, 7002, __pyx_L1_error)
+7003: EpsUz=EpsUz, EpsVz=EpsVz,
__pyx_t_24 = __pyx_PyFloat_AsDouble(__pyx_v_EpsUz); if (unlikely((__pyx_t_24 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7003, __pyx_L1_error) __pyx_t_23 = __pyx_PyFloat_AsDouble(__pyx_v_EpsVz); if (unlikely((__pyx_t_23 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7003, __pyx_L1_error)
+7004: EpsA=EpsA, EpsB=EpsB,
__pyx_t_22 = __pyx_PyFloat_AsDouble(__pyx_v_EpsA); if (unlikely((__pyx_t_22 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7004, __pyx_L1_error) __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_v_EpsB); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7004, __pyx_L1_error)
+7005: EpsPlane=EpsPlane)
__pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7005, __pyx_L1_error)
+7006: kpin = np.sqrt(np.sum((Ds-pIn)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sum); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_Subtract(__pyx_v_Ds, __pyx_v_pIn); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyNumber_Power(__pyx_t_11, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (PyDict_SetItem(__pyx_t_12, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 7006, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_15 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_12, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF_SET(__pyx_v_kpin, __pyx_t_15); __pyx_t_15 = 0;
+7007: indNoNan = (~np.isnan(kpin)) & (~np.isnan(kPOut))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_15 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Invert(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_isnan); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_15 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_2, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_Invert(__pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_And(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_indNoNan, __pyx_t_15); __pyx_t_15 = 0;
+7008: indout = np.zeros((NL,),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_v_NL); __Pyx_GIVEREF(__pyx_v_NL); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_NL); __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 7008, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7008, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF_SET(__pyx_v_indout, __pyx_t_2); __pyx_t_2 = 0;
+7009: indout[indNoNan] = kpin[indNoNan]<kPOut[indNoNan]
__pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indNoNan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_kPOut, __pyx_v_indNoNan); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7009, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_15, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7009, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_v_indNoNan, __pyx_t_1) < 0)) __PYX_ERR(0, 7009, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+7010: indout[(~np.isnan(kpin)) & np.isnan(kPOut)] = True
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_isnan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_15, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_isnan); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_15, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyNumber_And(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_t_12, Py_True) < 0)) __PYX_ERR(0, 7010, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+7011: if np.any(indout):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_any); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_12 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_indout) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_indout); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7011, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if (__pyx_t_5) { /* … */ } } }
+7012: kPOut[indout] = kpin[indout]
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indout); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7012, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); if (unlikely(PyObject_SetItem(__pyx_v_kPOut, __pyx_v_indout, __pyx_t_12) < 0)) __PYX_ERR(0, 7012, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+7013: POut[:,indout] = pIn[:,indout]
__pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_indout); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pIn, __pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_POut, __pyx_t_12, __pyx_t_2) < 0)) __PYX_ERR(0, 7013, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+7014: VperpOut[:,indout] = vperpIn[:,indout]
__pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_indout); __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_vperpIn, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7014, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_VperpOut, __pyx_t_2, __pyx_t_12) < 0)) __PYX_ERR(0, 7014, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+7015: IOut[2,indout] = iIn[indout]
__pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_iIn, __pyx_v_indout); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_2); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_t_2, __pyx_t_12) < 0)) __PYX_ERR(0, 7015, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+7016: IOut[0,indout] = 1+ii
__pyx_t_12 = __Pyx_PyInt_From_long((1 + __pyx_v_ii)); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_t_2, __pyx_t_12) < 0)) __PYX_ERR(0, 7016, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+7017: IOut[1,indout] = jj
__pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7017, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_1); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_t_2, __pyx_t_12) < 0)) __PYX_ERR(0, 7017, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
7018: else:
+7019: PIn, POut, \
/*else*/ {
/* … */
__pyx_v_PIn = __pyx_t_2;
__pyx_t_2 = 0;
__pyx_v_POut = __pyx_t_1;
__pyx_t_1 = 0;
__pyx_v_VperpIn = __pyx_t_15;
__pyx_t_15 = 0;
__pyx_v_VperpOut = __pyx_t_11;
__pyx_t_11 = 0;
__pyx_v_IIn = __pyx_t_8;
__pyx_t_8 = 0;
7020: VperpIn, VperpOut, \
+7021: IIn, IOut[2,:] = Calc_LOS_PInOut_Lin(Ds, dus, VPoly, VIn,
__pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_Ds, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 7021, __pyx_L1_error) __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_dus, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 7021, __pyx_L1_error) __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPoly), PyBUF_WRITABLE); if (unlikely(!__pyx_t_18.memview)) __PYX_ERR(0, 7021, __pyx_L1_error) __pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VIn), PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 7021, __pyx_L1_error) /* … */ __pyx_t_30.__pyx_n = 1; __pyx_t_30.EpsPlane = __pyx_t_20; __pyx_t_12 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin(__pyx_t_16, __pyx_t_17, __pyx_t_18, __pyx_t_19, __pyx_v_Lim, &__pyx_t_30); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __PYX_XDEC_MEMVIEW(&__pyx_t_16, 1); __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_17, 1); __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1); __pyx_t_18.memview = NULL; __pyx_t_18.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; if ((likely(PyTuple_CheckExact(__pyx_t_12))) || (PyList_CheckExact(__pyx_t_12))) { PyObject* sequence = __pyx_t_12; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 7019, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_15 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_2 = PyList_GET_ITEM(sequence, 0); __pyx_t_1 = PyList_GET_ITEM(sequence, 1); __pyx_t_15 = PyList_GET_ITEM(sequence, 2); __pyx_t_11 = PyList_GET_ITEM(sequence, 3); __pyx_t_8 = PyList_GET_ITEM(sequence, 4); __pyx_t_6 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_6); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_15,&__pyx_t_11,&__pyx_t_8,&__pyx_t_6}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 7019, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_15,&__pyx_t_11,&__pyx_t_8,&__pyx_t_6}; __pyx_t_14 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_26 = Py_TYPE(__pyx_t_14)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_26(__pyx_t_14); if (unlikely(!item)) goto __pyx_L63_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_26(__pyx_t_14), 6) < 0) __PYX_ERR(0, 7019, __pyx_L1_error) __pyx_t_26 = NULL; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L64_unpacking_done; __pyx_L63_unpacking_failed:; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_26 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 7019, __pyx_L1_error) __pyx_L64_unpacking_done:; } /* … */ if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_tuple__32, __pyx_t_6) < 0)) __PYX_ERR(0, 7021, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+7022: Lim, EpsPlane=EpsPlane)
__pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7022, __pyx_L1_error)
+7023: kPOut = np.sqrt(np.sum((POut-Ds)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_sum); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Subtract(__pyx_v_POut, __pyx_v_Ds); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_15 = PyNumber_Power(__pyx_t_6, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 7023, __pyx_L1_error) __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_15, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_v_kPOut = __pyx_t_12; __pyx_t_12 = 0;
+7024: kPIn = np.sqrt(np.sum((PIn-Ds)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_sum); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Subtract(__pyx_v_PIn, __pyx_v_Ds); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_6 = PyNumber_Power(__pyx_t_8, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 7024, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_12 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_kPIn = __pyx_t_12; __pyx_t_12 = 0;
+7025: assert np.allclose(kPOut,np.sum((POut-Ds)*dus,axis=0),equal_nan=True)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_allclose); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sum); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Subtract(__pyx_v_POut, __pyx_v_Ds); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_6 = PyNumber_Multiply(__pyx_t_12, __pyx_v_dus); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_GIVEREF(__pyx_t_6);
PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_6);
__pyx_t_6 = 0;
__pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 7025, __pyx_L1_error)
__pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_12, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_INCREF(__pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_v_kPOut);
PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_kPOut);
__Pyx_GIVEREF(__pyx_t_8);
PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_8);
__pyx_t_8 = 0;
__pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_equal_nan, Py_True) < 0) __PYX_ERR(0, 7025, __pyx_L1_error)
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7025, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 7025, __pyx_L1_error)
}
}
#endif
+7026: assert np.allclose(kPIn,np.sum((PIn-Ds)*dus,axis=0),equal_nan=True)
#ifndef CYTHON_WITHOUT_ASSERTIONS
if (unlikely(!Py_OptimizeFlag)) {
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_allclose); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_8);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyNumber_Subtract(__pyx_v_PIn, __pyx_v_Ds); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__pyx_t_1 = PyNumber_Multiply(__pyx_t_12, __pyx_v_dus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_GIVEREF(__pyx_t_1);
PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
__pyx_t_1 = 0;
__pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 7026, __pyx_L1_error)
__pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_INCREF(__pyx_v_kPIn);
__Pyx_GIVEREF(__pyx_v_kPIn);
PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_kPIn);
__Pyx_GIVEREF(__pyx_t_11);
PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_11);
__pyx_t_11 = 0;
__pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_11);
if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_equal_nan, Py_True) < 0) __PYX_ERR(0, 7026, __pyx_L1_error)
__pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_12);
__Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
__pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 7026, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
if (unlikely(!__pyx_t_5)) {
PyErr_SetNone(PyExc_AssertionError);
__PYX_ERR(0, 7026, __pyx_L1_error)
}
}
#endif
+7027: if LSPoly is not None:
__pyx_t_5 = (__pyx_v_LSPoly != Py_None);
__pyx_t_3 = (__pyx_t_5 != 0);
if (__pyx_t_3) {
/* … */
}
}
__pyx_L46:;
+7028: Ind = np.zeros((2,NL))
__Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_2); __Pyx_INCREF(__pyx_v_NL); __Pyx_GIVEREF(__pyx_v_NL); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_NL); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_12 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_11); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7028, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_Ind = __pyx_t_12; __pyx_t_12 = 0;
+7029: for ii in range(0,len(LSPoly)):
__pyx_t_7 = PyObject_Length(__pyx_v_LSPoly); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7029, __pyx_L1_error) __pyx_t_10 = __pyx_t_7; for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_10; __pyx_t_13+=1) { __pyx_v_ii = __pyx_t_13;
+7030: lslim = [LSLim[ii]] if not all([hasattr(ll,'__iter__')
__pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_3 = __Pyx_HasAttr(__pyx_v_ll, __pyx_n_s_iter); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(0, 7030, __pyx_L1_error) __pyx_t_11 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_11))) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; /* … */ __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_all, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (((!__pyx_t_3) != 0)) { __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7030, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_8); __pyx_t_8 = 0; __pyx_t_12 = __pyx_t_1; __pyx_t_1 = 0; } else {
+7031: for ll in LSLim[ii]]) \
__pyx_t_11 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) { __pyx_t_8 = __pyx_t_11; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; __pyx_t_27 = NULL; } else { __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_27 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 7031, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; for (;;) { if (likely(!__pyx_t_27)) { if (likely(PyList_CheckExact(__pyx_t_8))) { if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 7031, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } else { if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 7031, __pyx_L1_error) #else __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7031, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); #endif } } else { __pyx_t_11 = __pyx_t_27(__pyx_t_8); if (unlikely(!__pyx_t_11)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(0, 7031, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_11); } __Pyx_XDECREF_SET(__pyx_v_ll, __pyx_t_11); __pyx_t_11 = 0; /* … */ } __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+7032: else LSLim[ii]
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_LSLim, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = __pyx_t_1; __pyx_t_1 = 0; } __Pyx_XDECREF_SET(__pyx_v_lslim, __pyx_t_12); __pyx_t_12 = 0;
+7033: for jj in range(0,len(lslim)):
__pyx_t_9 = PyObject_Length(__pyx_v_lslim); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 7033, __pyx_L1_error) __pyx_t_28 = __pyx_t_9; for (__pyx_t_29 = 0; __pyx_t_29 < __pyx_t_28; __pyx_t_29+=1) { __pyx_v_jj = __pyx_t_29;
+7034: pIn, pOut, \
__Pyx_XDECREF_SET(__pyx_v_pIn, __pyx_t_12); __pyx_t_12 = 0; __Pyx_XDECREF_SET(__pyx_v_pOut, __pyx_t_8); __pyx_t_8 = 0; __Pyx_XDECREF_SET(__pyx_v_vperpIn, __pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF_SET(__pyx_v_vperpOut, __pyx_t_6); __pyx_t_6 = 0; __Pyx_XDECREF_SET(__pyx_v_iIn, __pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF_SET(__pyx_v_iOut, __pyx_t_2); __pyx_t_2 = 0;
7035: vperpIn, vperpOut, \
+7036: iIn, iOut = Calc_LOS_PInOut_Lin(Ds, dus, LSPoly[ii],
__pyx_t_19 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_Ds, PyBUF_WRITABLE); if (unlikely(!__pyx_t_19.memview)) __PYX_ERR(0, 7036, __pyx_L1_error) __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_dus, PyBUF_WRITABLE); if (unlikely(!__pyx_t_18.memview)) __PYX_ERR(0, 7036, __pyx_L1_error) __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_LSPoly, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_17 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_12, PyBUF_WRITABLE); if (unlikely(!__pyx_t_17.memview)) __PYX_ERR(0, 7036, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; /* … */ __pyx_t_30.__pyx_n = 1; __pyx_t_30.EpsPlane = __pyx_t_20; __pyx_t_1 = __pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin(__pyx_t_19, __pyx_t_18, __pyx_t_17, __pyx_t_16, __pyx_t_12, &__pyx_t_30); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7036, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __PYX_XDEC_MEMVIEW(&__pyx_t_19, 1); __pyx_t_19.memview = NULL; __pyx_t_19.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1); __pyx_t_18.memview = NULL; __pyx_t_18.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_17, 1); __pyx_t_17.memview = NULL; __pyx_t_17.data = NULL; __PYX_XDEC_MEMVIEW(&__pyx_t_16, 1); __pyx_t_16.memview = NULL; __pyx_t_16.data = NULL; __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { PyObject* sequence = __pyx_t_1; Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); if (unlikely(size != 6)) { if (size > 6) __Pyx_RaiseTooManyValuesError(6); else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); __PYX_ERR(0, 7034, __pyx_L1_error) } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS if (likely(PyTuple_CheckExact(sequence))) { __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); __pyx_t_11 = PyTuple_GET_ITEM(sequence, 2); __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); __pyx_t_15 = PyTuple_GET_ITEM(sequence, 4); __pyx_t_2 = PyTuple_GET_ITEM(sequence, 5); } else { __pyx_t_12 = PyList_GET_ITEM(sequence, 0); __pyx_t_8 = PyList_GET_ITEM(sequence, 1); __pyx_t_11 = PyList_GET_ITEM(sequence, 2); __pyx_t_6 = PyList_GET_ITEM(sequence, 3); __pyx_t_15 = PyList_GET_ITEM(sequence, 4); __pyx_t_2 = PyList_GET_ITEM(sequence, 5); } __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(__pyx_t_2); #else { Py_ssize_t i; PyObject** temps[6] = {&__pyx_t_12,&__pyx_t_8,&__pyx_t_11,&__pyx_t_6,&__pyx_t_15,&__pyx_t_2}; for (i=0; i < 6; i++) { PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 7034, __pyx_L1_error) __Pyx_GOTREF(item); *(temps[i]) = item; } } #endif __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } else { Py_ssize_t index = -1; PyObject** temps[6] = {&__pyx_t_12,&__pyx_t_8,&__pyx_t_11,&__pyx_t_6,&__pyx_t_15,&__pyx_t_2}; __pyx_t_14 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_26 = Py_TYPE(__pyx_t_14)->tp_iternext; for (index=0; index < 6; index++) { PyObject* item = __pyx_t_26(__pyx_t_14); if (unlikely(!item)) goto __pyx_L72_unpacking_failed; __Pyx_GOTREF(item); *(temps[index]) = item; } if (__Pyx_IternextUnpackEndCheck(__pyx_t_26(__pyx_t_14), 6) < 0) __PYX_ERR(0, 7034, __pyx_L1_error) __pyx_t_26 = NULL; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L73_unpacking_done; __pyx_L72_unpacking_failed:; __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; __pyx_t_26 = NULL; if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); __PYX_ERR(0, 7034, __pyx_L1_error) __pyx_L73_unpacking_done:; }
+7037: LSVIn[ii], lslim[jj],
__pyx_t_12 = __Pyx_GetItemInt(__pyx_v_LSVIn, __pyx_v_ii, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_16 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_t_12, PyBUF_WRITABLE); if (unlikely(!__pyx_t_16.memview)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_lslim, __pyx_v_jj, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+7038: EpsPlane=EpsPlane)
__pyx_t_20 = __pyx_PyFloat_AsDouble(__pyx_v_EpsPlane); if (unlikely((__pyx_t_20 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7038, __pyx_L1_error)
+7039: kpin = np.sqrt(np.sum((Ds-pIn)**2,axis=0))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sqrt); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sum); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Subtract(__pyx_v_Ds, __pyx_v_pIn); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_11 = PyNumber_Power(__pyx_t_2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (PyDict_SetItem(__pyx_t_11, __pyx_n_s_axis, __pyx_int_0) < 0) __PYX_ERR(0, 7039, __pyx_L1_error) __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_11)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_11); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_11, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_8); __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_XDECREF_SET(__pyx_v_kpin, __pyx_t_1); __pyx_t_1 = 0;
+7040: indNoNan = (~np.isnan(kpin)) & (~np.isnan(kPOut))
__Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_isnan); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_15, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_isnan); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_15, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_Invert(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_And(__pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7040, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF_SET(__pyx_v_indNoNan, __pyx_t_1); __pyx_t_1 = 0;
+7041: indout = np.zeros((NL,),dtype=bool)
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_NL); __Pyx_GIVEREF(__pyx_v_NL); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_NL); __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, ((PyObject *)__pyx_ptype_7cpython_4bool_bool)) < 0) __PYX_ERR(0, 7041, __pyx_L1_error) __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7041, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF_SET(__pyx_v_indout, __pyx_t_15); __pyx_t_15 = 0;
+7042: indout[indNoNan] = kpin[indNoNan]<kPOut[indNoNan]
__pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indNoNan); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_kPOut, __pyx_v_indNoNan); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7042, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyObject_RichCompare(__pyx_t_15, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7042, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_v_indNoNan, __pyx_t_8) < 0)) __PYX_ERR(0, 7042, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+7043: indout[(~np.isnan(kpin)) & np.isnan(kPOut)] = True
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_isnan); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_1, __pyx_v_kpin) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_kpin); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyNumber_Invert(__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_isnan); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_11); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_11, function); } } __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_1, __pyx_v_kPOut) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_kPOut); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyNumber_And(__pyx_t_15, __pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(PyObject_SetItem(__pyx_v_indout, __pyx_t_11, Py_True) < 0)) __PYX_ERR(0, 7043, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+7044: if np.any(indout):
__Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_any); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_8, __pyx_v_indout) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_indout); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 7044, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; if (__pyx_t_3) { /* … */ } } }
+7045: kPOut[indout] = kpin[indout]
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_kpin, __pyx_v_indout); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); if (unlikely(PyObject_SetItem(__pyx_v_kPOut, __pyx_v_indout, __pyx_t_11) < 0)) __PYX_ERR(0, 7045, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+7046: POut[:,indout] = pIn[:,indout]
__pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_indout); __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_pIn, __pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7046, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_POut, __pyx_t_11, __pyx_t_15) < 0)) __PYX_ERR(0, 7046, __pyx_L1_error) __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+7047: VperpOut[:,indout] = vperpIn[:,indout]
__pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_indout); __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_vperpIn, __pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_slice__8); __Pyx_GIVEREF(__pyx_slice__8); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_slice__8); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_VperpOut, __pyx_t_15, __pyx_t_11) < 0)) __PYX_ERR(0, 7047, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+7048: IOut[2,indout] = iIn[indout]
__pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_v_iIn, __pyx_v_indout); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_2); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_t_15, __pyx_t_11) < 0)) __PYX_ERR(0, 7048, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+7049: IOut[0,indout] = 1+ii
__pyx_t_11 = __Pyx_PyInt_From_long((1 + __pyx_v_ii)); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_0); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_t_15, __pyx_t_11) < 0)) __PYX_ERR(0, 7049, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+7050: IOut[1,indout] = jj
__pyx_t_11 = __Pyx_PyInt_From_int(__pyx_v_jj); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_INCREF(__pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_1); __Pyx_INCREF(__pyx_v_indout); __Pyx_GIVEREF(__pyx_v_indout); PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_indout); if (unlikely(PyObject_SetItem(__pyx_v_IOut, __pyx_t_15, __pyx_t_11) < 0)) __PYX_ERR(0, 7050, __pyx_L1_error) __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
7051:
+7052: if not v:
__pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_v); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 7052, __pyx_L1_error) __pyx_t_5 = ((!__pyx_t_3) != 0); if (__pyx_t_5) { /* … */ }
7053: PIn, POut, \
7054: kPIn, kPOut, \
7055: VperpIn, VperpOut, \
+7056: IIn, IOut = PIn.flatten(), POut.flatten(), kPIn[0], kPOut[0], \
__pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_PIn, __pyx_n_s_flatten); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_8 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_8)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_8); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_15); __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 7056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_11); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_POut, __pyx_n_s_flatten); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_8, function); } } __pyx_t_15 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_8); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_kPIn, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 7056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_kPOut, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7056, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1);
+7057: VperpIn.flatten(), VperpOut.flatten(), IIn[0], \
__pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_VperpIn, __pyx_n_s_flatten); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_12 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_12)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_12); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_2 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_6); __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_VperpOut, __pyx_n_s_flatten); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12); __pyx_t_14 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_12))) { __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_12); if (likely(__pyx_t_14)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12); __Pyx_INCREF(__pyx_t_14); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_12, function); } } __pyx_t_6 = (__pyx_t_14) ? __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_14) : __Pyx_PyObject_CallNoArg(__pyx_t_12); __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; __pyx_t_12 = __Pyx_GetItemInt(__pyx_v_IIn, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 7057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_12);
+7058: IOut.flatten()
__pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_v_IOut, __pyx_n_s_flatten); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 7058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_31); __pyx_t_32 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_31))) { __pyx_t_32 = PyMethod_GET_SELF(__pyx_t_31); if (likely(__pyx_t_32)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_31); __Pyx_INCREF(__pyx_t_32); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_31, function); } } __pyx_t_14 = (__pyx_t_32) ? __Pyx_PyObject_CallOneArg(__pyx_t_31, __pyx_t_32) : __Pyx_PyObject_CallNoArg(__pyx_t_31); __Pyx_XDECREF(__pyx_t_32); __pyx_t_32 = 0; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7058, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0; __Pyx_DECREF_SET(__pyx_v_PIn, __pyx_t_11); __pyx_t_11 = 0; __Pyx_DECREF_SET(__pyx_v_POut, __pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF_SET(__pyx_v_kPIn, __pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF_SET(__pyx_v_kPOut, __pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF_SET(__pyx_v_VperpIn, __pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF_SET(__pyx_v_VperpOut, __pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF_SET(__pyx_v_IIn, __pyx_t_12); __pyx_t_12 = 0; __Pyx_DECREF_SET(__pyx_v_IOut, __pyx_t_14); __pyx_t_14 = 0;
+7059: return PIn, POut, kPIn, kPOut, VperpIn, VperpOut, IIn, IOut
__Pyx_XDECREF(__pyx_r); __pyx_t_14 = PyTuple_New(8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 7059, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); __Pyx_INCREF(__pyx_v_PIn); __Pyx_GIVEREF(__pyx_v_PIn); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_PIn); __Pyx_INCREF(__pyx_v_POut); __Pyx_GIVEREF(__pyx_v_POut); PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_POut); __Pyx_INCREF(__pyx_v_kPIn); __Pyx_GIVEREF(__pyx_v_kPIn); PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_v_kPIn); __Pyx_INCREF(__pyx_v_kPOut); __Pyx_GIVEREF(__pyx_v_kPOut); PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_v_kPOut); __Pyx_INCREF(__pyx_v_VperpIn); __Pyx_GIVEREF(__pyx_v_VperpIn); PyTuple_SET_ITEM(__pyx_t_14, 4, __pyx_v_VperpIn); __Pyx_INCREF(__pyx_v_VperpOut); __Pyx_GIVEREF(__pyx_v_VperpOut); PyTuple_SET_ITEM(__pyx_t_14, 5, __pyx_v_VperpOut); __Pyx_INCREF(__pyx_v_IIn); __Pyx_GIVEREF(__pyx_v_IIn); PyTuple_SET_ITEM(__pyx_t_14, 6, __pyx_v_IIn); __Pyx_INCREF(__pyx_v_IOut); __Pyx_GIVEREF(__pyx_v_IOut); PyTuple_SET_ITEM(__pyx_t_14, 7, __pyx_v_IOut); __pyx_r = __pyx_t_14; __pyx_t_14 = 0; goto __pyx_L0;
7060:
7061: @cython.cdivision(True)
7062: @cython.wraparound(False)
7063: @cython.boundscheck(False)
+7064: cdef Calc_LOS_PInOut_Lin(double[:,::1] Ds, double [:,::1] us, double[:,::1] VPoly, double[:,::1] VIn, Lim, double EpsPlane=1.e-9):
static PyObject *__pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin(__Pyx_memviewslice __pyx_v_Ds, __Pyx_memviewslice __pyx_v_us, __Pyx_memviewslice __pyx_v_VPoly, __Pyx_memviewslice __pyx_v_VIn, PyObject *__pyx_v_Lim, struct __pyx_opt_args_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin *__pyx_optional_args) {
double __pyx_v_EpsPlane = ((double)1.e-9);
PyObject *__pyx_v_warn = NULL;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_Nl;
int __pyx_v_Ns;
double __pyx_v_kin;
double __pyx_v_kout;
double __pyx_v_scauVin;
double __pyx_v_q;
double __pyx_v_X;
double __pyx_v_sca;
double __pyx_v_L0;
double __pyx_v_L1;
int __pyx_v_indin;
int __pyx_v_indout;
int __pyx_v_Done;
PyArrayObject *__pyx_v_SIn_ = 0;
PyArrayObject *__pyx_v_SOut_ = 0;
PyArrayObject *__pyx_v_VPerp_In = 0;
PyArrayObject *__pyx_v_VPerp_Out = 0;
PyArrayObject *__pyx_v_indIn_ = 0;
PyArrayObject *__pyx_v_indOut_ = 0;
__Pyx_memviewslice __pyx_v_SIn = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_SOut = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_VPerpIn = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_VPerpOut = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_indIn = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_indOut = { 0, 0, { 0 }, { 0 }, { 0 } };
PyObject *__pyx_v_k = NULL;
PyObject *__pyx_v_V1 = NULL;
PyObject *__pyx_v_V2 = NULL;
__Pyx_LocalBuf_ND __pyx_pybuffernd_SIn_;
__Pyx_Buffer __pyx_pybuffer_SIn_;
__Pyx_LocalBuf_ND __pyx_pybuffernd_SOut_;
__Pyx_Buffer __pyx_pybuffer_SOut_;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPerp_In;
__Pyx_Buffer __pyx_pybuffer_VPerp_In;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPerp_Out;
__Pyx_Buffer __pyx_pybuffer_VPerp_Out;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indIn_;
__Pyx_Buffer __pyx_pybuffer_indIn_;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indOut_;
__Pyx_Buffer __pyx_pybuffer_indOut_;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Calc_LOS_PInOut_Lin", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_EpsPlane = __pyx_optional_args->EpsPlane;
}
}
__pyx_pybuffer_SIn_.pybuffer.buf = NULL;
__pyx_pybuffer_SIn_.refcount = 0;
__pyx_pybuffernd_SIn_.data = NULL;
__pyx_pybuffernd_SIn_.rcbuffer = &__pyx_pybuffer_SIn_;
__pyx_pybuffer_SOut_.pybuffer.buf = NULL;
__pyx_pybuffer_SOut_.refcount = 0;
__pyx_pybuffernd_SOut_.data = NULL;
__pyx_pybuffernd_SOut_.rcbuffer = &__pyx_pybuffer_SOut_;
__pyx_pybuffer_VPerp_In.pybuffer.buf = NULL;
__pyx_pybuffer_VPerp_In.refcount = 0;
__pyx_pybuffernd_VPerp_In.data = NULL;
__pyx_pybuffernd_VPerp_In.rcbuffer = &__pyx_pybuffer_VPerp_In;
__pyx_pybuffer_VPerp_Out.pybuffer.buf = NULL;
__pyx_pybuffer_VPerp_Out.refcount = 0;
__pyx_pybuffernd_VPerp_Out.data = NULL;
__pyx_pybuffernd_VPerp_Out.rcbuffer = &__pyx_pybuffer_VPerp_Out;
__pyx_pybuffer_indIn_.pybuffer.buf = NULL;
__pyx_pybuffer_indIn_.refcount = 0;
__pyx_pybuffernd_indIn_.data = NULL;
__pyx_pybuffernd_indIn_.rcbuffer = &__pyx_pybuffer_indIn_;
__pyx_pybuffer_indOut_.pybuffer.buf = NULL;
__pyx_pybuffer_indOut_.refcount = 0;
__pyx_pybuffernd_indOut_.data = NULL;
__pyx_pybuffernd_indOut_.rcbuffer = &__pyx_pybuffer_indOut_;
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_XDECREF(__pyx_t_6);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_80, 1);
__Pyx_XDECREF(__pyx_t_191);
__Pyx_XDECREF(__pyx_t_192);
__Pyx_XDECREF(__pyx_t_193);
__Pyx_XDECREF(__pyx_t_194);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SOut_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indOut_.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Calc_LOS_PInOut_Lin", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SOut_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indOut_.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF((PyObject *)__pyx_v_SIn_);
__Pyx_XDECREF((PyObject *)__pyx_v_SOut_);
__Pyx_XDECREF((PyObject *)__pyx_v_VPerp_In);
__Pyx_XDECREF((PyObject *)__pyx_v_VPerp_Out);
__Pyx_XDECREF((PyObject *)__pyx_v_indIn_);
__Pyx_XDECREF((PyObject *)__pyx_v_indOut_);
__PYX_XDEC_MEMVIEW(&__pyx_v_SIn, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_SOut, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPerpIn, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPerpOut, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indIn, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indOut, 1);
__Pyx_XDECREF(__pyx_v_k);
__Pyx_XDECREF(__pyx_v_V1);
__Pyx_XDECREF(__pyx_v_V2);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Lin {
int __pyx_n;
double EpsPlane;
};
7065:
+7066: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7066, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+7067: warn("THIS IS THE OLD VERSION OF THIS FUNCTION, PLEASE USE THE NEW ONE",
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__131, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7067, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__131 = PyTuple_Pack(2, __pyx_kp_s_THIS_IS_THE_OLD_VERSION_OF_THIS, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 7067, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__131); __Pyx_GIVEREF(__pyx_tuple__131);
+7068: DeprecationWarning, stacklevel=2)
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7068, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_stacklevel, __pyx_int_2) < 0) __PYX_ERR(0, 7068, __pyx_L1_error)
7069:
+7070: cdef int ii=0, jj=0, Nl=Ds.shape[1], Ns=VIn.shape[1]
__pyx_v_ii = 0; __pyx_v_jj = 0; __pyx_v_Nl = (__pyx_v_Ds.shape[1]); __pyx_v_Ns = (__pyx_v_VIn.shape[1]);
+7071: cdef double kin, kout, scauVin, q, X, sca, L0=<double>Lim[0], L1=<double>Lim[1]
__pyx_t_1 = __Pyx_GetItemInt(__pyx_v_Lim, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_L0 = ((double)__pyx_t_3); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_Lim, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7071, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_L1 = ((double)__pyx_t_3);
+7072: cdef int indin=0, indout=0, Done=0
__pyx_v_indin = 0; __pyx_v_indout = 0; __pyx_v_Done = 0;
+7073: cdef np.ndarray[double,ndim=2] SIn_=np.nan*np.ones((3,Nl)), SOut_=np.nan*np.ones((3,Nl))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7073, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_SIn_.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_SIn_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7073, __pyx_L1_error) } else {__pyx_pybuffernd_SIn_.diminfo[0].strides = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_SIn_.diminfo[0].shape = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_SIn_.diminfo[1].strides = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_SIn_.diminfo[1].shape = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.shape[1]; } } __pyx_t_7 = 0; __pyx_v_SIn_ = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_nan); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ones); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_6, function); } } __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7073, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_6); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_SOut_.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_SOut_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7073, __pyx_L1_error) } else {__pyx_pybuffernd_SOut_.diminfo[0].strides = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_SOut_.diminfo[0].shape = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_SOut_.diminfo[1].strides = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_SOut_.diminfo[1].shape = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.shape[1]; } } __pyx_t_7 = 0; __pyx_v_SOut_ = ((PyArrayObject *)__pyx_t_6); __pyx_t_6 = 0;
+7074: cdef np.ndarray[double,ndim=2] VPerp_In=np.nan*np.ones((3,Nl)), VPerp_Out=np.nan*np.ones((3,Nl))
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_nan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_6 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7074, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_VPerp_In = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7074, __pyx_L1_error) } else {__pyx_pybuffernd_VPerp_In.diminfo[0].strides = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPerp_In.diminfo[0].shape = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPerp_In.diminfo[1].strides = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPerp_In.diminfo[1].shape = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.shape[1]; } } __pyx_t_8 = 0; __pyx_v_VPerp_In = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7074, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7074, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_VPerp_Out = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7074, __pyx_L1_error) } else {__pyx_pybuffernd_VPerp_Out.diminfo[0].strides = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPerp_Out.diminfo[0].shape = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPerp_Out.diminfo[1].strides = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPerp_Out.diminfo[1].shape = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.shape[1]; } } __pyx_t_8 = 0; __pyx_v_VPerp_Out = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+7075: cdef np.ndarray[double,ndim=1] indIn_=np.nan*np.ones((Nl,)), indOut_=np.nan*np.ones((Nl,))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7075, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indIn_.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_indIn_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_indIn_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7075, __pyx_L1_error) } else {__pyx_pybuffernd_indIn_.diminfo[0].strides = __pyx_pybuffernd_indIn_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indIn_.diminfo[0].shape = __pyx_pybuffernd_indIn_.rcbuffer->pybuffer.shape[0]; } } __pyx_t_9 = 0; __pyx_v_indIn_ = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7075, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7075, __pyx_L1_error) __pyx_t_9 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indOut_.rcbuffer->pybuffer, (PyObject*)__pyx_t_9, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_indOut_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_indOut_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7075, __pyx_L1_error) } else {__pyx_pybuffernd_indOut_.diminfo[0].strides = __pyx_pybuffernd_indOut_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indOut_.diminfo[0].shape = __pyx_pybuffernd_indOut_.rcbuffer->pybuffer.shape[0]; } } __pyx_t_9 = 0; __pyx_v_indOut_ = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
7076:
+7077: cdef double[:,::1] SIn=SIn_, SOut=SOut_, VPerpIn=VPerp_In, VPerpOut=VPerp_Out
__pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_SIn_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 7077, __pyx_L1_error) __pyx_v_SIn = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_SOut_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 7077, __pyx_L1_error) __pyx_v_SOut = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPerp_In), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 7077, __pyx_L1_error) __pyx_v_VPerpIn = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPerp_Out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 7077, __pyx_L1_error) __pyx_v_VPerpOut = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+7078: cdef double[::1] indIn=indIn_, indOut=indOut_
__pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_indIn_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 7078, __pyx_L1_error) __pyx_v_indIn = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL; __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_indOut_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 7078, __pyx_L1_error) __pyx_v_indOut = __pyx_t_11; __pyx_t_11.memview = NULL; __pyx_t_11.data = NULL;
7079:
+7080: for ii in range(0,Nl):
__pyx_t_12 = __pyx_v_Nl;
__pyx_t_13 = __pyx_t_12;
for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
__pyx_v_ii = __pyx_t_14;
+7081: kout, kin, Done = 1.e12, 1e12, 0
__pyx_t_3 = 1.e12;
__pyx_t_15 = 1e12;
__pyx_t_16 = 0;
__pyx_v_kout = __pyx_t_3;
__pyx_v_kin = __pyx_t_15;
__pyx_v_Done = __pyx_t_16;
7082: # For cylinder
+7083: for jj in range(0,Ns):
__pyx_t_16 = __pyx_v_Ns;
__pyx_t_17 = __pyx_t_16;
for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) {
__pyx_v_jj = __pyx_t_18;
+7084: scauVin = us[1,ii]*VIn[0,jj] + us[2,ii]*VIn[1,jj]
__pyx_t_19 = 1;
__pyx_t_20 = __pyx_v_ii;
__pyx_t_21 = 0;
__pyx_t_22 = __pyx_v_jj;
__pyx_t_23 = 2;
__pyx_t_24 = __pyx_v_ii;
__pyx_t_25 = 1;
__pyx_t_26 = __pyx_v_jj;
__pyx_v_scauVin = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_19 * __pyx_v_us.strides[0]) )) + __pyx_t_20)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_21 * __pyx_v_VIn.strides[0]) )) + __pyx_t_22)) )))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_23 * __pyx_v_us.strides[0]) )) + __pyx_t_24)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_25 * __pyx_v_VIn.strides[0]) )) + __pyx_t_26)) )))));
7085: # Only if plane not parallel to line
+7086: if Cabs(scauVin)>EpsPlane:
__pyx_t_27 = ((fabs(__pyx_v_scauVin) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_27) {
/* … */
}
}
+7087: k = -((Ds[1,ii]-VPoly[0,jj])*VIn[0,jj] + (Ds[2,ii]-VPoly[1,jj])*VIn[1,jj])/scauVin
__pyx_t_28 = 1;
__pyx_t_29 = __pyx_v_ii;
__pyx_t_30 = 0;
__pyx_t_31 = __pyx_v_jj;
__pyx_t_32 = 0;
__pyx_t_33 = __pyx_v_jj;
__pyx_t_34 = 2;
__pyx_t_35 = __pyx_v_ii;
__pyx_t_36 = 1;
__pyx_t_37 = __pyx_v_jj;
__pyx_t_38 = 1;
__pyx_t_39 = __pyx_v_jj;
__pyx_t_5 = PyFloat_FromDouble(((-((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_28 * __pyx_v_Ds.strides[0]) )) + __pyx_t_29)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_30 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_31)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_32 * __pyx_v_VIn.strides[0]) )) + __pyx_t_33)) )))) + (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_34 * __pyx_v_Ds.strides[0]) )) + __pyx_t_35)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_36 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_37)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_38 * __pyx_v_VIn.strides[0]) )) + __pyx_t_39)) )))))) / __pyx_v_scauVin)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7087, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5);
__pyx_t_5 = 0;
7088: # Only if on good side of semi-line
+7089: if k>=0.:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7089, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_27 < 0)) __PYX_ERR(0, 7089, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_27) { /* … */ }
+7090: V1, V2 = VPoly[0,jj+1]-VPoly[0,jj], VPoly[1,jj+1]-VPoly[1,jj]
__pyx_t_40 = 0;
__pyx_t_41 = (__pyx_v_jj + 1);
__pyx_t_42 = 0;
__pyx_t_43 = __pyx_v_jj;
__pyx_t_5 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_40 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_41)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_42 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_43)) ))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_44 = 1;
__pyx_t_45 = (__pyx_v_jj + 1);
__pyx_t_46 = 1;
__pyx_t_47 = __pyx_v_jj;
__pyx_t_1 = PyFloat_FromDouble(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_44 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_45)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_46 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_47)) ))))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7090, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_XDECREF_SET(__pyx_v_V1, __pyx_t_5);
__pyx_t_5 = 0;
__Pyx_XDECREF_SET(__pyx_v_V2, __pyx_t_1);
__pyx_t_1 = 0;
+7091: q = ((Ds[1,ii] + k*us[1,ii]-VPoly[0,jj])*V1 + (Ds[2,ii] + k*us[2,ii]-VPoly[1,jj])*V2)/(V1**2+V2**2)
__pyx_t_48 = 1;
__pyx_t_49 = __pyx_v_ii;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_48 * __pyx_v_Ds.strides[0]) )) + __pyx_t_49)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_50 = 1;
__pyx_t_51 = __pyx_v_ii;
__pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_50 * __pyx_v_us.strides[0]) )) + __pyx_t_51)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_2 = PyNumber_Multiply(__pyx_v_k, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_52 = 0;
__pyx_t_53 = __pyx_v_jj;
__pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_52 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_53)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_v_V1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_54 = 2;
__pyx_t_55 = __pyx_v_ii;
__pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_54 * __pyx_v_Ds.strides[0]) )) + __pyx_t_55)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_56 = 2;
__pyx_t_57 = __pyx_v_ii;
__pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_56 * __pyx_v_us.strides[0]) )) + __pyx_t_57)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyNumber_Multiply(__pyx_v_k, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_58 = 1;
__pyx_t_59 = __pyx_v_jj;
__pyx_t_6 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_58 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_59)) )))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Multiply(__pyx_t_1, __pyx_v_V2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_6 = PyNumber_Power(__pyx_v_V1, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_2 = PyNumber_Power(__pyx_v_V2, __pyx_int_2, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7091, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_v_q = __pyx_t_15;
7092: # Only of on the fraction of plane
+7093: if q>=0. and q<1.:
__pyx_t_60 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L10_bool_binop_done;
}
__pyx_t_60 = ((__pyx_v_q < 1.) != 0);
__pyx_t_27 = __pyx_t_60;
__pyx_L10_bool_binop_done:;
if (__pyx_t_27) {
/* … */
}
+7094: X = Ds[0,ii] + k*us[0,ii]
__pyx_t_61 = 0;
__pyx_t_62 = __pyx_v_ii;
__pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_61 * __pyx_v_Ds.strides[0]) )) + __pyx_t_62)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_63 = 0;
__pyx_t_64 = __pyx_v_ii;
__pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_63 * __pyx_v_us.strides[0]) )) + __pyx_t_64)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = PyNumber_Multiply(__pyx_v_k, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7094, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_5); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7094, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_v_X = __pyx_t_15;
7095: # Only if within limits
+7096: if X>=L0 and X<=L1:
__pyx_t_60 = ((__pyx_v_X >= __pyx_v_L0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L13_bool_binop_done;
}
__pyx_t_60 = ((__pyx_v_X <= __pyx_v_L1) != 0);
__pyx_t_27 = __pyx_t_60;
__pyx_L13_bool_binop_done:;
if (__pyx_t_27) {
/* … */
}
+7097: sca = us[1,ii]*VIn[0,jj] + us[2,ii]*VIn[1,jj]
__pyx_t_65 = 1;
__pyx_t_66 = __pyx_v_ii;
__pyx_t_67 = 0;
__pyx_t_68 = __pyx_v_jj;
__pyx_t_69 = 2;
__pyx_t_70 = __pyx_v_ii;
__pyx_t_71 = 1;
__pyx_t_72 = __pyx_v_jj;
__pyx_v_sca = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_65 * __pyx_v_us.strides[0]) )) + __pyx_t_66)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_67 * __pyx_v_VIn.strides[0]) )) + __pyx_t_68)) )))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_69 * __pyx_v_us.strides[0]) )) + __pyx_t_70)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_71 * __pyx_v_VIn.strides[0]) )) + __pyx_t_72)) )))));
7098: # Only if new
+7099: if sca<=0 and k<kout:
__pyx_t_60 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L16_bool_binop_done;
}
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7099, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_1 = PyObject_RichCompare(__pyx_v_k, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7099, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_60 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_60 < 0)) __PYX_ERR(0, 7099, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_27 = __pyx_t_60;
__pyx_L16_bool_binop_done:;
if (__pyx_t_27) {
/* … */
goto __pyx_L15;
}
+7100: kout = k
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7100, __pyx_L1_error) __pyx_v_kout = __pyx_t_15;
+7101: indout = jj
__pyx_v_indout = __pyx_v_jj;
+7102: Done = 1
__pyx_v_Done = 1;
+7103: elif sca>=0 and k<min(kin,kout):
__pyx_t_60 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L18_bool_binop_done;
}
__pyx_t_15 = __pyx_v_kout;
__pyx_t_3 = __pyx_v_kin;
if (((__pyx_t_15 < __pyx_t_3) != 0)) {
__pyx_t_73 = __pyx_t_15;
} else {
__pyx_t_73 = __pyx_t_3;
}
__pyx_t_1 = PyFloat_FromDouble(__pyx_t_73); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7103, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyObject_RichCompare(__pyx_v_k, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7103, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_60 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_60 < 0)) __PYX_ERR(0, 7103, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_27 = __pyx_t_60;
__pyx_L18_bool_binop_done:;
if (__pyx_t_27) {
/* … */
}
__pyx_L15:;
+7104: kin = k
__pyx_t_73 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_73 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7104, __pyx_L1_error) __pyx_v_kin = __pyx_t_73;
+7105: indin = jj
__pyx_v_indin = __pyx_v_jj;
7106: # For two faces
7107: # Only if plane not parallel to line
+7108: if Cabs(us[0,ii])>EpsPlane:
__pyx_t_74 = 0;
__pyx_t_75 = __pyx_v_ii;
__pyx_t_27 = ((fabs((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_74 * __pyx_v_us.strides[0]) )) + __pyx_t_75)) )))) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_27) {
/* … */
}
7109: # First face
+7110: k = -(Ds[0,ii]-L0)/us[0,ii]
__pyx_t_76 = 0;
__pyx_t_77 = __pyx_v_ii;
__pyx_t_78 = 0;
__pyx_t_79 = __pyx_v_ii;
__pyx_t_5 = PyFloat_FromDouble(((-((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_76 * __pyx_v_Ds.strides[0]) )) + __pyx_t_77)) ))) - __pyx_v_L0)) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_78 * __pyx_v_us.strides[0]) )) + __pyx_t_79)) ))))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7110, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_5);
__pyx_t_5 = 0;
7111: # Only if on good side of semi-line
+7112: if k>=0.:
__pyx_t_5 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7112, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_27 < 0)) __PYX_ERR(0, 7112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_27) { /* … */ }
7113: # Only if inside VPoly
+7114: if Path(VPoly.T).contains_point([Ds[1,ii]+k*us[1,ii],Ds[2,ii]+k*us[2,ii]], transform=None, radius=0.0):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_80 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_80, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_80) == 0)) __PYX_ERR(0, 7114, __pyx_L1_error) __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_80, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_80, 1); __pyx_t_80.memview = NULL; __pyx_t_80.data = NULL; __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_contains_point); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_81 = 1; __pyx_t_82 = __pyx_v_ii; __pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_81 * __pyx_v_Ds.strides[0]) )) + __pyx_t_82)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_83 = 1; __pyx_t_84 = __pyx_v_ii; __pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_83 * __pyx_v_us.strides[0]) )) + __pyx_t_84)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyNumber_Multiply(__pyx_v_k, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_85 = 2; __pyx_t_86 = __pyx_v_ii; __pyx_t_6 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_85 * __pyx_v_Ds.strides[0]) )) + __pyx_t_86)) )))); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_87 = 2; __pyx_t_88 = __pyx_v_ii; __pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_87 * __pyx_v_us.strides[0]) )) + __pyx_t_88)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyNumber_Multiply(__pyx_v_k, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); __pyx_t_2 = 0; __pyx_t_5 = 0; __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 7114, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 7114, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_27 < 0)) __PYX_ERR(0, 7114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_27) { /* … */ }
+7115: if us[0,ii]<=0 and k<kout:
__pyx_t_89 = 0;
__pyx_t_90 = __pyx_v_ii;
__pyx_t_60 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_89 * __pyx_v_us.strides[0]) )) + __pyx_t_90)) ))) <= 0.0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L24_bool_binop_done;
}
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7115, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__pyx_t_4 = PyObject_RichCompare(__pyx_v_k, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7115, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_60 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_60 < 0)) __PYX_ERR(0, 7115, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_27 = __pyx_t_60;
__pyx_L24_bool_binop_done:;
if (__pyx_t_27) {
/* … */
goto __pyx_L23;
}
+7116: kout = k
__pyx_t_73 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_73 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7116, __pyx_L1_error) __pyx_v_kout = __pyx_t_73;
+7117: indout = -1
__pyx_v_indout = -1;
+7118: Done = 1
__pyx_v_Done = 1;
+7119: elif us[0,ii]>=0 and k<min(kin,kout):
__pyx_t_91 = 0;
__pyx_t_92 = __pyx_v_ii;
__pyx_t_60 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_91 * __pyx_v_us.strides[0]) )) + __pyx_t_92)) ))) >= 0.0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L26_bool_binop_done;
}
__pyx_t_73 = __pyx_v_kout;
__pyx_t_15 = __pyx_v_kin;
if (((__pyx_t_73 < __pyx_t_15) != 0)) {
__pyx_t_3 = __pyx_t_73;
} else {
__pyx_t_3 = __pyx_t_15;
}
__pyx_t_4 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7119, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_2 = PyObject_RichCompare(__pyx_v_k, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7119, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_60 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_60 < 0)) __PYX_ERR(0, 7119, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
__pyx_t_27 = __pyx_t_60;
__pyx_L26_bool_binop_done:;
if (__pyx_t_27) {
/* … */
}
__pyx_L23:;
+7120: kin = k
__pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7120, __pyx_L1_error) __pyx_v_kin = __pyx_t_3;
+7121: indin = -1
__pyx_v_indin = -1;
7122: # Second face
+7123: k = -(Ds[0,ii]-L1)/us[0,ii]
__pyx_t_93 = 0;
__pyx_t_94 = __pyx_v_ii;
__pyx_t_95 = 0;
__pyx_t_96 = __pyx_v_ii;
__pyx_t_2 = PyFloat_FromDouble(((-((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_93 * __pyx_v_Ds.strides[0]) )) + __pyx_t_94)) ))) - __pyx_v_L1)) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_95 * __pyx_v_us.strides[0]) )) + __pyx_t_96)) ))))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7123, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_2);
__Pyx_DECREF_SET(__pyx_v_k, __pyx_t_2);
__pyx_t_2 = 0;
7124: # Only if on good side of semi-line
+7125: if k>=0.:
__pyx_t_2 = PyObject_RichCompare(__pyx_v_k, __pyx_float_0_, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7125, __pyx_L1_error) __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_27 < 0)) __PYX_ERR(0, 7125, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (__pyx_t_27) { /* … */ }
7126: # Only if inside VPoly
+7127: if Path(VPoly.T).contains_point([Ds[1,ii]+k*us[1,ii],Ds[2,ii]+k*us[2,ii]], transform=None, radius=0.0):
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Path); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_80 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_80, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_80) == 0)) __PYX_ERR(0, 7127, __pyx_L1_error) __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_80, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_80, 1); __pyx_t_80.memview = NULL; __pyx_t_80.data = NULL; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_contains_point); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_97 = 1; __pyx_t_98 = __pyx_v_ii; __pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_97 * __pyx_v_Ds.strides[0]) )) + __pyx_t_98)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_99 = 1; __pyx_t_100 = __pyx_v_ii; __pyx_t_5 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_99 * __pyx_v_us.strides[0]) )) + __pyx_t_100)) )))); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = PyNumber_Multiply(__pyx_v_k, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_101 = 2; __pyx_t_102 = __pyx_v_ii; __pyx_t_1 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_101 * __pyx_v_Ds.strides[0]) )) + __pyx_t_102)) )))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_103 = 2; __pyx_t_104 = __pyx_v_ii; __pyx_t_2 = PyFloat_FromDouble((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_103 * __pyx_v_us.strides[0]) )) + __pyx_t_104)) )))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_6 = PyNumber_Multiply(__pyx_v_k, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); __pyx_t_5 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 7127, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 7127, __pyx_L1_error) __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_27 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_27 < 0)) __PYX_ERR(0, 7127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_27) { /* … */ }
+7128: if us[0,ii]>=0 and k<kout:
__pyx_t_105 = 0;
__pyx_t_106 = __pyx_v_ii;
__pyx_t_60 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_105 * __pyx_v_us.strides[0]) )) + __pyx_t_106)) ))) >= 0.0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L31_bool_binop_done;
}
__pyx_t_5 = PyFloat_FromDouble(__pyx_v_kout); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7128, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_6 = PyObject_RichCompare(__pyx_v_k, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7128, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_60 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_60 < 0)) __PYX_ERR(0, 7128, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_27 = __pyx_t_60;
__pyx_L31_bool_binop_done:;
if (__pyx_t_27) {
/* … */
goto __pyx_L30;
}
+7129: kout = k
__pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_3 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7129, __pyx_L1_error) __pyx_v_kout = __pyx_t_3;
+7130: indout = -2
__pyx_v_indout = -2;
+7131: Done = 1
__pyx_v_Done = 1;
+7132: elif us[0,ii]<=0 and k<min(kin,kout):
__pyx_t_107 = 0;
__pyx_t_108 = __pyx_v_ii;
__pyx_t_60 = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_107 * __pyx_v_us.strides[0]) )) + __pyx_t_108)) ))) <= 0.0) != 0);
if (__pyx_t_60) {
} else {
__pyx_t_27 = __pyx_t_60;
goto __pyx_L33_bool_binop_done;
}
__pyx_t_3 = __pyx_v_kout;
__pyx_t_73 = __pyx_v_kin;
if (((__pyx_t_3 < __pyx_t_73) != 0)) {
__pyx_t_15 = __pyx_t_3;
} else {
__pyx_t_15 = __pyx_t_73;
}
__pyx_t_6 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7132, __pyx_L1_error)
__Pyx_GOTREF(__pyx_t_6);
__pyx_t_5 = PyObject_RichCompare(__pyx_v_k, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7132, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
__pyx_t_60 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_60 < 0)) __PYX_ERR(0, 7132, __pyx_L1_error)
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_27 = __pyx_t_60;
__pyx_L33_bool_binop_done:;
if (__pyx_t_27) {
/* … */
}
__pyx_L30:;
+7133: kin = k
__pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_v_k); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7133, __pyx_L1_error) __pyx_v_kin = __pyx_t_15;
+7134: indin = -2
__pyx_v_indin = -2;
7135:
+7136: if Done==1:
__pyx_t_27 = ((__pyx_v_Done == 1) != 0);
if (__pyx_t_27) {
/* … */
}
}
+7137: SOut[0,ii] = Ds[0,ii] + kout*us[0,ii]
__pyx_t_109 = 0;
__pyx_t_110 = __pyx_v_ii;
__pyx_t_111 = 0;
__pyx_t_112 = __pyx_v_ii;
__pyx_t_113 = 0;
__pyx_t_114 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_113 * __pyx_v_SOut.strides[0]) )) + __pyx_t_114)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_109 * __pyx_v_Ds.strides[0]) )) + __pyx_t_110)) ))) + (__pyx_v_kout * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_111 * __pyx_v_us.strides[0]) )) + __pyx_t_112)) )))));
+7138: SOut[1,ii] = Ds[1,ii] + kout*us[1,ii]
__pyx_t_115 = 1;
__pyx_t_116 = __pyx_v_ii;
__pyx_t_117 = 1;
__pyx_t_118 = __pyx_v_ii;
__pyx_t_119 = 1;
__pyx_t_120 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_119 * __pyx_v_SOut.strides[0]) )) + __pyx_t_120)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_115 * __pyx_v_Ds.strides[0]) )) + __pyx_t_116)) ))) + (__pyx_v_kout * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_117 * __pyx_v_us.strides[0]) )) + __pyx_t_118)) )))));
+7139: SOut[2,ii] = Ds[2,ii] + kout*us[2,ii]
__pyx_t_121 = 2;
__pyx_t_122 = __pyx_v_ii;
__pyx_t_123 = 2;
__pyx_t_124 = __pyx_v_ii;
__pyx_t_125 = 2;
__pyx_t_126 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_125 * __pyx_v_SOut.strides[0]) )) + __pyx_t_126)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_121 * __pyx_v_Ds.strides[0]) )) + __pyx_t_122)) ))) + (__pyx_v_kout * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_123 * __pyx_v_us.strides[0]) )) + __pyx_t_124)) )))));
7140: # To be finished
7141: # phi = Catan2(SOut[1,ii],SOut[0,ii])
+7142: if indout==-1:
switch (__pyx_v_indout) {
case -1L:
/* … */
break;
case -2L:
+7143: VPerpOut[0,ii] = 1.
__pyx_t_127 = 0;
__pyx_t_128 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_127 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_128)) )) = 1.;
+7144: VPerpOut[1,ii] = 0.
__pyx_t_129 = 1;
__pyx_t_130 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_129 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_130)) )) = 0.;
+7145: VPerpOut[2,ii] = 0.
__pyx_t_131 = 2;
__pyx_t_132 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_131 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_132)) )) = 0.;
+7146: elif indout==-2:
break;
default:
+7147: VPerpOut[0,ii] = -1.
__pyx_t_133 = 0;
__pyx_t_134 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_133 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_134)) )) = -1.;
+7148: VPerpOut[1,ii] = 0.
__pyx_t_135 = 1;
__pyx_t_136 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_135 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_136)) )) = 0.;
+7149: VPerpOut[2,ii] = 0.
__pyx_t_137 = 2;
__pyx_t_138 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_137 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_138)) )) = 0.;
7150: else:
+7151: VPerpOut[0,ii] = 0.
__pyx_t_139 = 0;
__pyx_t_140 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_139 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_140)) )) = 0.;
+7152: VPerpOut[1,ii] = VIn[0,indout]
__pyx_t_141 = 0;
__pyx_t_142 = __pyx_v_indout;
__pyx_t_143 = 1;
__pyx_t_144 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_143 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_144)) )) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_141 * __pyx_v_VIn.strides[0]) )) + __pyx_t_142)) )));
+7153: VPerpOut[2,ii] = VIn[1,indout]
__pyx_t_145 = 1;
__pyx_t_146 = __pyx_v_indout;
__pyx_t_147 = 2;
__pyx_t_148 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_147 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_148)) )) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_145 * __pyx_v_VIn.strides[0]) )) + __pyx_t_146)) )));
break;
}
+7154: indOut[ii] = indout
__pyx_t_149 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_indOut.data) + __pyx_t_149)) )) = __pyx_v_indout;
+7155: if kin<kout:
__pyx_t_27 = ((__pyx_v_kin < __pyx_v_kout) != 0);
if (__pyx_t_27) {
/* … */
}
+7156: SIn[0,ii] = Ds[0,ii] + kin*us[0,ii]
__pyx_t_150 = 0;
__pyx_t_151 = __pyx_v_ii;
__pyx_t_152 = 0;
__pyx_t_153 = __pyx_v_ii;
__pyx_t_154 = 0;
__pyx_t_155 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_154 * __pyx_v_SIn.strides[0]) )) + __pyx_t_155)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_150 * __pyx_v_Ds.strides[0]) )) + __pyx_t_151)) ))) + (__pyx_v_kin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_152 * __pyx_v_us.strides[0]) )) + __pyx_t_153)) )))));
+7157: SIn[1,ii] = Ds[1,ii] + kin*us[1,ii]
__pyx_t_156 = 1;
__pyx_t_157 = __pyx_v_ii;
__pyx_t_158 = 1;
__pyx_t_159 = __pyx_v_ii;
__pyx_t_160 = 1;
__pyx_t_161 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_160 * __pyx_v_SIn.strides[0]) )) + __pyx_t_161)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_156 * __pyx_v_Ds.strides[0]) )) + __pyx_t_157)) ))) + (__pyx_v_kin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_158 * __pyx_v_us.strides[0]) )) + __pyx_t_159)) )))));
+7158: SIn[2,ii] = Ds[2,ii] + kin*us[2,ii]
__pyx_t_162 = 2;
__pyx_t_163 = __pyx_v_ii;
__pyx_t_164 = 2;
__pyx_t_165 = __pyx_v_ii;
__pyx_t_166 = 2;
__pyx_t_167 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_166 * __pyx_v_SIn.strides[0]) )) + __pyx_t_167)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_162 * __pyx_v_Ds.strides[0]) )) + __pyx_t_163)) ))) + (__pyx_v_kin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_164 * __pyx_v_us.strides[0]) )) + __pyx_t_165)) )))));
+7159: if indin==-1:
switch (__pyx_v_indin) {
case -1L:
/* … */
break;
case -2L:
+7160: VPerpIn[0,ii] = -1.
__pyx_t_168 = 0;
__pyx_t_169 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_168 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_169)) )) = -1.;
+7161: VPerpIn[1,ii] = 0.
__pyx_t_170 = 1;
__pyx_t_171 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_170 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_171)) )) = 0.;
+7162: VPerpIn[2,ii] = 0.
__pyx_t_172 = 2;
__pyx_t_173 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_172 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_173)) )) = 0.;
+7163: elif indin==-2:
break;
default:
+7164: VPerpIn[0,ii] = 1.
__pyx_t_174 = 0;
__pyx_t_175 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_174 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_175)) )) = 1.;
+7165: VPerpIn[1,ii] = 0.
__pyx_t_176 = 1;
__pyx_t_177 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_176 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_177)) )) = 0.;
+7166: VPerpIn[2,ii] = 0.
__pyx_t_178 = 2;
__pyx_t_179 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_178 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_179)) )) = 0.;
7167: else:
+7168: VPerpIn[0,ii] = 0.
__pyx_t_180 = 0;
__pyx_t_181 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_180 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_181)) )) = 0.;
+7169: VPerpIn[1,ii] = -VIn[0,indin]
__pyx_t_182 = 0;
__pyx_t_183 = __pyx_v_indin;
__pyx_t_184 = 1;
__pyx_t_185 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_184 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_185)) )) = (-(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_182 * __pyx_v_VIn.strides[0]) )) + __pyx_t_183)) ))));
+7170: VPerpIn[2,ii] = -VIn[1,indin]
__pyx_t_186 = 1;
__pyx_t_187 = __pyx_v_indin;
__pyx_t_188 = 2;
__pyx_t_189 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_188 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_189)) )) = (-(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VIn.data + __pyx_t_186 * __pyx_v_VIn.strides[0]) )) + __pyx_t_187)) ))));
break;
}
+7171: indIn[ii] = indin
__pyx_t_190 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_indIn.data) + __pyx_t_190)) )) = __pyx_v_indin;
7172:
+7173: return np.asarray(SIn), np.asarray(SOut), np.asarray(VPerpIn), np.asarray(VPerpOut), np.asarray(indIn), np.asarray(indOut)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_SIn, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_SOut, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_VPerpIn, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_191 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_191 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_191)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_191); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_191) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_191, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_6); __Pyx_XDECREF(__pyx_t_191); __pyx_t_191 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_191 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_191)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_191); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_VPerpOut, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_192 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_191))) { __pyx_t_192 = PyMethod_GET_SELF(__pyx_t_191); if (likely(__pyx_t_192)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_191); __Pyx_INCREF(__pyx_t_192); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_191, function); } } __pyx_t_1 = (__pyx_t_192) ? __Pyx_PyObject_Call2Args(__pyx_t_191, __pyx_t_192, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_191, __pyx_t_6); __Pyx_XDECREF(__pyx_t_192); __pyx_t_192 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_191); __pyx_t_191 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_192 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_192)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_192); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_indIn, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_193 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_192))) { __pyx_t_193 = PyMethod_GET_SELF(__pyx_t_192); if (likely(__pyx_t_193)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_192); __Pyx_INCREF(__pyx_t_193); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_192, function); } } __pyx_t_191 = (__pyx_t_193) ? __Pyx_PyObject_Call2Args(__pyx_t_192, __pyx_t_193, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_192, __pyx_t_6); __Pyx_XDECREF(__pyx_t_193); __pyx_t_193 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_191)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_191); __Pyx_DECREF(__pyx_t_192); __pyx_t_192 = 0; __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_193 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_asarray); if (unlikely(!__pyx_t_193)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_193); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_indOut, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_t_194 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_193))) { __pyx_t_194 = PyMethod_GET_SELF(__pyx_t_193); if (likely(__pyx_t_194)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_193); __Pyx_INCREF(__pyx_t_194); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_193, function); } } __pyx_t_192 = (__pyx_t_194) ? __Pyx_PyObject_Call2Args(__pyx_t_193, __pyx_t_194, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_193, __pyx_t_6); __Pyx_XDECREF(__pyx_t_194); __pyx_t_194 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_192)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_192); __Pyx_DECREF(__pyx_t_193); __pyx_t_193 = 0; __pyx_t_193 = PyTuple_New(6); if (unlikely(!__pyx_t_193)) __PYX_ERR(0, 7173, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_193); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_193, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_193, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_193, 2, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_193, 3, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_191); PyTuple_SET_ITEM(__pyx_t_193, 4, __pyx_t_191); __Pyx_GIVEREF(__pyx_t_192); PyTuple_SET_ITEM(__pyx_t_193, 5, __pyx_t_192); __pyx_t_5 = 0; __pyx_t_2 = 0; __pyx_t_4 = 0; __pyx_t_1 = 0; __pyx_t_191 = 0; __pyx_t_192 = 0; __pyx_r = __pyx_t_193; __pyx_t_193 = 0; goto __pyx_L0;
7174:
7175: @cython.cdivision(True)
7176: @cython.wraparound(False)
7177: @cython.boundscheck(False)
+7178: cdef Calc_LOS_PInOut_Tor(double [:,::1] Ds, double [:,::1] us, double [:,::1] VPoly, double [:,::1] vIn, Lim=None,
static PyObject *__pyx_f_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor(__Pyx_memviewslice __pyx_v_Ds, __Pyx_memviewslice __pyx_v_us, __Pyx_memviewslice __pyx_v_VPoly, __Pyx_memviewslice __pyx_v_vIn, struct __pyx_opt_args_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor *__pyx_optional_args) {
PyObject *__pyx_v_Lim = ((PyObject *)Py_None);
/* … */
/* function exit code */
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_2);
__Pyx_XDECREF(__pyx_t_3);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
__PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
__Pyx_XDECREF(__pyx_t_15);
__Pyx_XDECREF(__pyx_t_16);
__Pyx_XDECREF(__pyx_t_18);
__PYX_XDEC_MEMVIEW(&__pyx_t_280, 1);
__Pyx_XDECREF(__pyx_t_407);
{ PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
__Pyx_PyThreadState_declare
__Pyx_PyThreadState_assign
__Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SOut_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indOut_.rcbuffer->pybuffer);
__Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
__Pyx_AddTraceback("tofu.geom._GG03.Calc_LOS_PInOut_Tor", __pyx_clineno, __pyx_lineno, __pyx_filename);
__pyx_r = 0;
goto __pyx_L2;
__pyx_L0:;
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_SOut_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indIn_.rcbuffer->pybuffer);
__Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indOut_.rcbuffer->pybuffer);
__pyx_L2:;
__Pyx_XDECREF(__pyx_v_warn);
__Pyx_XDECREF((PyObject *)__pyx_v_SIn_);
__Pyx_XDECREF((PyObject *)__pyx_v_SOut_);
__Pyx_XDECREF((PyObject *)__pyx_v_VPerp_In);
__Pyx_XDECREF((PyObject *)__pyx_v_VPerp_Out);
__Pyx_XDECREF((PyObject *)__pyx_v_indIn_);
__Pyx_XDECREF((PyObject *)__pyx_v_indOut_);
__PYX_XDEC_MEMVIEW(&__pyx_v_SIn, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_SOut, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPerpIn, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_VPerpOut, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indIn, 1);
__PYX_XDEC_MEMVIEW(&__pyx_v_indOut, 1);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}
/* … */
struct __pyx_opt_args_4tofu_4geom_5_GG03_Calc_LOS_PInOut_Tor {
int __pyx_n;
PyObject *Lim;
PyBoolObject *Forbid;
PyObject *RMin;
double EpsUz;
double EpsVz;
double EpsA;
double EpsB;
double EpsPlane;
};
+7179: bool Forbid=True, RMin=None, double EpsUz=1.e-6, double EpsVz=1.e-9, double EpsA=1.e-9, double EpsB=1.e-9, double EpsPlane=1.e-9):
PyBoolObject *__pyx_v_Forbid = ((PyBoolObject *)Py_True);
PyObject *__pyx_v_RMin = ((PyObject *)Py_None);
double __pyx_v_EpsUz = ((double)1.e-6);
double __pyx_v_EpsVz = ((double)1.e-9);
double __pyx_v_EpsA = ((double)1.e-9);
double __pyx_v_EpsB = ((double)1.e-9);
double __pyx_v_EpsPlane = ((double)1.e-9);
PyObject *__pyx_v_warn = NULL;
int __pyx_v_ii;
int __pyx_v_jj;
int __pyx_v_Nl;
int __pyx_v_Ns;
double __pyx_v_Rmin;
double __pyx_v_upscaDp;
double __pyx_v_upar2;
double __pyx_v_Dpar2;
double __pyx_v_Crit2;
double __pyx_v_kout;
double __pyx_v_kin;
int __pyx_v_indin;
int __pyx_v_indout;
int __pyx_v_Done;
double __pyx_v_L;
double __pyx_v_S1X;
double __pyx_v_S1Y;
double __pyx_v_S2X;
double __pyx_v_S2Y;
double __pyx_v_sca;
double __pyx_v_sca0;
double __pyx_v_sca1;
double __pyx_v_sca2;
double __pyx_v_q;
double __pyx_v_C;
double __pyx_v_delta;
double __pyx_v_sqd;
double __pyx_v_k;
double __pyx_v_sol0;
double __pyx_v_sol1;
double __pyx_v_phi;
double __pyx_v_L0;
double __pyx_v_L1;
double __pyx_v_v0;
double __pyx_v_v1;
double __pyx_v_A;
double __pyx_v_B;
double __pyx_v_ephiIn0;
double __pyx_v_ephiIn1;
int __pyx_v_Forbidbis;
int __pyx_v_Forbid0;
PyArrayObject *__pyx_v_SIn_ = 0;
PyArrayObject *__pyx_v_SOut_ = 0;
PyArrayObject *__pyx_v_VPerp_In = 0;
PyArrayObject *__pyx_v_VPerp_Out = 0;
PyArrayObject *__pyx_v_indIn_ = 0;
PyArrayObject *__pyx_v_indOut_ = 0;
__Pyx_memviewslice __pyx_v_SIn = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_SOut = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_VPerpIn = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_VPerpOut = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_indIn = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_memviewslice __pyx_v_indOut = { 0, 0, { 0 }, { 0 }, { 0 } };
__Pyx_LocalBuf_ND __pyx_pybuffernd_SIn_;
__Pyx_Buffer __pyx_pybuffer_SIn_;
__Pyx_LocalBuf_ND __pyx_pybuffernd_SOut_;
__Pyx_Buffer __pyx_pybuffer_SOut_;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPerp_In;
__Pyx_Buffer __pyx_pybuffer_VPerp_In;
__Pyx_LocalBuf_ND __pyx_pybuffernd_VPerp_Out;
__Pyx_Buffer __pyx_pybuffer_VPerp_Out;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indIn_;
__Pyx_Buffer __pyx_pybuffer_indIn_;
__Pyx_LocalBuf_ND __pyx_pybuffernd_indOut_;
__Pyx_Buffer __pyx_pybuffer_indOut_;
PyObject *__pyx_r = NULL;
__Pyx_RefNannyDeclarations
__Pyx_RefNannySetupContext("Calc_LOS_PInOut_Tor", 0);
if (__pyx_optional_args) {
if (__pyx_optional_args->__pyx_n > 0) {
__pyx_v_Lim = __pyx_optional_args->Lim;
if (__pyx_optional_args->__pyx_n > 1) {
__pyx_v_Forbid = __pyx_optional_args->Forbid;
if (__pyx_optional_args->__pyx_n > 2) {
__pyx_v_RMin = __pyx_optional_args->RMin;
if (__pyx_optional_args->__pyx_n > 3) {
__pyx_v_EpsUz = __pyx_optional_args->EpsUz;
if (__pyx_optional_args->__pyx_n > 4) {
__pyx_v_EpsVz = __pyx_optional_args->EpsVz;
if (__pyx_optional_args->__pyx_n > 5) {
__pyx_v_EpsA = __pyx_optional_args->EpsA;
if (__pyx_optional_args->__pyx_n > 6) {
__pyx_v_EpsB = __pyx_optional_args->EpsB;
if (__pyx_optional_args->__pyx_n > 7) {
__pyx_v_EpsPlane = __pyx_optional_args->EpsPlane;
}
}
}
}
}
}
}
}
}
__pyx_pybuffer_SIn_.pybuffer.buf = NULL;
__pyx_pybuffer_SIn_.refcount = 0;
__pyx_pybuffernd_SIn_.data = NULL;
__pyx_pybuffernd_SIn_.rcbuffer = &__pyx_pybuffer_SIn_;
__pyx_pybuffer_SOut_.pybuffer.buf = NULL;
__pyx_pybuffer_SOut_.refcount = 0;
__pyx_pybuffernd_SOut_.data = NULL;
__pyx_pybuffernd_SOut_.rcbuffer = &__pyx_pybuffer_SOut_;
__pyx_pybuffer_VPerp_In.pybuffer.buf = NULL;
__pyx_pybuffer_VPerp_In.refcount = 0;
__pyx_pybuffernd_VPerp_In.data = NULL;
__pyx_pybuffernd_VPerp_In.rcbuffer = &__pyx_pybuffer_VPerp_In;
__pyx_pybuffer_VPerp_Out.pybuffer.buf = NULL;
__pyx_pybuffer_VPerp_Out.refcount = 0;
__pyx_pybuffernd_VPerp_Out.data = NULL;
__pyx_pybuffernd_VPerp_Out.rcbuffer = &__pyx_pybuffer_VPerp_Out;
__pyx_pybuffer_indIn_.pybuffer.buf = NULL;
__pyx_pybuffer_indIn_.refcount = 0;
__pyx_pybuffernd_indIn_.data = NULL;
__pyx_pybuffernd_indIn_.rcbuffer = &__pyx_pybuffer_indIn_;
__pyx_pybuffer_indOut_.pybuffer.buf = NULL;
__pyx_pybuffer_indOut_.refcount = 0;
__pyx_pybuffernd_indOut_.data = NULL;
__pyx_pybuffernd_indOut_.rcbuffer = &__pyx_pybuffer_indOut_;
+7180: from warnings import warn
__pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_n_s_warn); __Pyx_GIVEREF(__pyx_n_s_warn); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_warn); __pyx_t_2 = __Pyx_Import(__pyx_n_s_warnings, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_warn); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_t_1); __pyx_v_warn = __pyx_t_1; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+7181: warn("THIS IS THE OLD VERSION OF THIS FUNCTION, PLEASE USE THE NEW ONE",
__pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_warn, __pyx_tuple__132, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_tuple__132 = PyTuple_Pack(2, __pyx_kp_s_THIS_IS_THE_OLD_VERSION_OF_THIS, __pyx_builtin_DeprecationWarning); if (unlikely(!__pyx_tuple__132)) __PYX_ERR(0, 7181, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__132); __Pyx_GIVEREF(__pyx_tuple__132);
+7182: DeprecationWarning, stacklevel=2)
__pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7182, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_stacklevel, __pyx_int_2) < 0) __PYX_ERR(0, 7182, __pyx_L1_error)
7183:
+7184: cdef int ii, jj, Nl=Ds.shape[1], Ns=vIn.shape[1]
__pyx_v_Nl = (__pyx_v_Ds.shape[1]); __pyx_v_Ns = (__pyx_v_vIn.shape[1]);
7185: cdef double Rmin, upscaDp, upar2, Dpar2, Crit2, kout, kin
+7186: cdef int indin=0, indout=0, Done=0
__pyx_v_indin = 0; __pyx_v_indout = 0; __pyx_v_Done = 0;
+7187: cdef double L, S1X=0., S1Y=0., S2X=0., S2Y=0., sca, sca0, sca1, sca2
__pyx_v_S1X = 0.; __pyx_v_S1Y = 0.; __pyx_v_S2X = 0.; __pyx_v_S2Y = 0.;
+7188: cdef double q, C, delta, sqd, k, sol0, sol1, phi=0., L0=0., L1=0.
__pyx_v_phi = 0.; __pyx_v_L0 = 0.; __pyx_v_L1 = 0.;
7189: cdef double v0, v1, A, B, ephiIn0, ephiIn1
7190: cdef int Forbidbis, Forbid0
+7191: cdef np.ndarray[double,ndim=2] SIn_=np.nan*np.ones((3,Nl)), SOut_=np.nan*np.ones((3,Nl))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7191, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_SIn_.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_SIn_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7191, __pyx_L1_error) } else {__pyx_pybuffernd_SIn_.diminfo[0].strides = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_SIn_.diminfo[0].shape = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_SIn_.diminfo[1].strides = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_SIn_.diminfo[1].shape = __pyx_pybuffernd_SIn_.rcbuffer->pybuffer.shape[1]; } } __pyx_t_6 = 0; __pyx_v_SIn_ = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_ones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_2)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_2); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7191, __pyx_L1_error) __pyx_t_6 = ((PyArrayObject *)__pyx_t_5); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_SOut_.rcbuffer->pybuffer, (PyObject*)__pyx_t_6, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_SOut_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7191, __pyx_L1_error) } else {__pyx_pybuffernd_SOut_.diminfo[0].strides = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_SOut_.diminfo[0].shape = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_SOut_.diminfo[1].strides = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_SOut_.diminfo[1].shape = __pyx_pybuffernd_SOut_.rcbuffer->pybuffer.shape[1]; } } __pyx_t_6 = 0; __pyx_v_SOut_ = ((PyArrayObject *)__pyx_t_5); __pyx_t_5 = 0;
+7192: cdef np.ndarray[double,ndim=2] VPerp_In=np.nan*np.ones((3,Nl)), VPerp_Out=np.nan*np.ones((3,Nl))
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7192, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_3); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_VPerp_In = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7192, __pyx_L1_error) } else {__pyx_pybuffernd_VPerp_In.diminfo[0].strides = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPerp_In.diminfo[0].shape = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPerp_In.diminfo[1].strides = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPerp_In.diminfo[1].shape = __pyx_pybuffernd_VPerp_In.rcbuffer->pybuffer.shape[1]; } } __pyx_t_7 = 0; __pyx_v_VPerp_In = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_nan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_ones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7192, __pyx_L1_error) __pyx_t_7 = ((PyArrayObject *)__pyx_t_2); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 2, 0, __pyx_stack) == -1)) { __pyx_v_VPerp_Out = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7192, __pyx_L1_error) } else {__pyx_pybuffernd_VPerp_Out.diminfo[0].strides = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_VPerp_Out.diminfo[0].shape = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.shape[0]; __pyx_pybuffernd_VPerp_Out.diminfo[1].strides = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.strides[1]; __pyx_pybuffernd_VPerp_Out.diminfo[1].shape = __pyx_pybuffernd_VPerp_Out.rcbuffer->pybuffer.shape[1]; } } __pyx_t_7 = 0; __pyx_v_VPerp_Out = ((PyArrayObject *)__pyx_t_2); __pyx_t_2 = 0;
+7193: cdef np.ndarray[double,ndim=1] indIn_=np.nan*np.ones((Nl,)), indOut_=np.nan*np.ones((Nl,))
__Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_ones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7193, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_1); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indIn_.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_indIn_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_indIn_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7193, __pyx_L1_error) } else {__pyx_pybuffernd_indIn_.diminfo[0].strides = __pyx_pybuffernd_indIn_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indIn_.diminfo[0].shape = __pyx_pybuffernd_indIn_.rcbuffer->pybuffer.shape[0]; } } __pyx_t_8 = 0; __pyx_v_indIn_ = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_nan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_ones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_Nl); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 7193, __pyx_L1_error) __pyx_t_8 = ((PyArrayObject *)__pyx_t_4); { __Pyx_BufFmt_StackElem __pyx_stack[1]; if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indOut_.rcbuffer->pybuffer, (PyObject*)__pyx_t_8, &__Pyx_TypeInfo_double, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) { __pyx_v_indOut_ = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); __pyx_pybuffernd_indOut_.rcbuffer->pybuffer.buf = NULL; __PYX_ERR(0, 7193, __pyx_L1_error) } else {__pyx_pybuffernd_indOut_.diminfo[0].strides = __pyx_pybuffernd_indOut_.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indOut_.diminfo[0].shape = __pyx_pybuffernd_indOut_.rcbuffer->pybuffer.shape[0]; } } __pyx_t_8 = 0; __pyx_v_indOut_ = ((PyArrayObject *)__pyx_t_4); __pyx_t_4 = 0;
7194:
+7195: cdef double[:,::1] SIn=SIn_, SOut=SOut_, VPerpIn=VPerp_In, VPerpOut=VPerp_Out
__pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_SIn_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 7195, __pyx_L1_error) __pyx_v_SIn = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_SOut_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 7195, __pyx_L1_error) __pyx_v_SOut = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPerp_In), PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 7195, __pyx_L1_error) __pyx_v_VPerpIn = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL; __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(((PyObject *)__pyx_v_VPerp_Out), PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 7195, __pyx_L1_error) __pyx_v_VPerpOut = __pyx_t_9; __pyx_t_9.memview = NULL; __pyx_t_9.data = NULL;
+7196: cdef double[::1] indIn=indIn_, indOut=indOut_
__pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_indIn_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 7196, __pyx_L1_error) __pyx_v_indIn = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_double(((PyObject *)__pyx_v_indOut_), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 7196, __pyx_L1_error) __pyx_v_indOut = __pyx_t_10; __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL;
+7197: if Lim is not None:
__pyx_t_11 = (__pyx_v_Lim != Py_None);
__pyx_t_12 = (__pyx_t_11 != 0);
if (__pyx_t_12) {
/* … */
}
+7198: L0 = Catan2(Csin(Lim[0]),Ccos(Lim[0]))
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_Lim, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_Lim, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7198, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_L0 = atan2(sin(__pyx_t_13), cos(__pyx_t_14));
+7199: L1 = Catan2(Csin(Lim[1]),Ccos(Lim[1]))
__pyx_t_4 = __Pyx_GetItemInt(__pyx_v_Lim, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_Lim, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7199, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_L1 = atan2(sin(__pyx_t_14), cos(__pyx_t_13));
7200:
7201: ################
7202: # Prepare input
+7203: if RMin is None:
__pyx_t_12 = (__pyx_v_RMin == Py_None);
__pyx_t_11 = (__pyx_t_12 != 0);
if (__pyx_t_11) {
/* … */
goto __pyx_L4;
}
+7204: Rmin = 0.95*min(np.min(VPoly[0,:]),np.min(np.hypot(Ds[0,:],Ds[1,:])))
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_hypot); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_10.data = __pyx_v_Ds.data; __pyx_t_10.memview = __pyx_v_Ds.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_Ds.strides[0]; if ((0)) __PYX_ERR(0, 7204, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_Ds.shape[1]; __pyx_t_10.strides[0] = __pyx_v_Ds.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_10.data = __pyx_v_Ds.data; __pyx_t_10.memview = __pyx_v_Ds.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 1; Py_ssize_t __pyx_tmp_stride = __pyx_v_Ds.strides[0]; if ((0)) __PYX_ERR(0, 7204, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_Ds.shape[1]; __pyx_t_10.strides[0] = __pyx_v_Ds.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_15 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_16 = NULL; __pyx_t_17 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); __pyx_t_17 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_t_5, __pyx_t_15}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_t_5, __pyx_t_15}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_17, 2+__pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; } else #endif { __pyx_t_18 = PyTuple_New(2+__pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (__pyx_t_16) { __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_16); __pyx_t_16 = NULL; } __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_17, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_17, __pyx_t_15); __pyx_t_5 = 0; __pyx_t_15 = 0; __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_10.data = __pyx_v_VPoly.data; __pyx_t_10.memview = __pyx_v_VPoly.memview; __PYX_INC_MEMVIEW(&__pyx_t_10, 0); { Py_ssize_t __pyx_tmp_idx = 0; Py_ssize_t __pyx_tmp_stride = __pyx_v_VPoly.strides[0]; if ((0)) __PYX_ERR(0, 7204, __pyx_L1_error) __pyx_t_10.data += __pyx_tmp_idx * __pyx_tmp_stride; } __pyx_t_10.shape[0] = __pyx_v_VPoly.shape[1]; __pyx_t_10.strides[0] = __pyx_v_VPoly.strides[1]; __pyx_t_10.suboffsets[0] = -1; __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_t_10, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); __pyx_t_10.memview = NULL; __pyx_t_10.data = NULL; __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_18, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7204, __pyx_L1_error) __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_11) { __Pyx_INCREF(__pyx_t_4); __pyx_t_3 = __pyx_t_4; } else { __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = __pyx_t_2; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyNumber_Multiply(__pyx_float_0_95, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7204, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_Rmin = __pyx_t_13;
7205: else:
+7206: Rmin = RMin
/*else*/ {
__pyx_t_13 = __pyx_PyFloat_AsDouble(__pyx_v_RMin); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 7206, __pyx_L1_error)
__pyx_v_Rmin = __pyx_t_13;
}
__pyx_L4:;
7207:
7208: ################
7209: # Compute
+7210: if Forbid:
__pyx_t_11 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_Forbid)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 7210, __pyx_L1_error) if (__pyx_t_11) { /* … */ goto __pyx_L5; }
+7211: Forbid0, Forbidbis = 1, 1
__pyx_t_17 = 1;
__pyx_t_19 = 1;
__pyx_v_Forbid0 = __pyx_t_17;
__pyx_v_Forbidbis = __pyx_t_19;
7212: else:
+7213: Forbid0, Forbidbis = 0, 0
/*else*/ {
__pyx_t_19 = 0;
__pyx_t_17 = 0;
__pyx_v_Forbid0 = __pyx_t_19;
__pyx_v_Forbidbis = __pyx_t_17;
}
__pyx_L5:;
+7214: for ii in range(0,Nl):
__pyx_t_17 = __pyx_v_Nl;
__pyx_t_19 = __pyx_t_17;
for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
__pyx_v_ii = __pyx_t_20;
+7215: upscaDp = us[0,ii]*Ds[0,ii] + us[1,ii]*Ds[1,ii]
__pyx_t_21 = 0;
__pyx_t_22 = __pyx_v_ii;
__pyx_t_23 = 0;
__pyx_t_24 = __pyx_v_ii;
__pyx_t_25 = 1;
__pyx_t_26 = __pyx_v_ii;
__pyx_t_27 = 1;
__pyx_t_28 = __pyx_v_ii;
__pyx_v_upscaDp = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_21 * __pyx_v_us.strides[0]) )) + __pyx_t_22)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_23 * __pyx_v_Ds.strides[0]) )) + __pyx_t_24)) )))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_25 * __pyx_v_us.strides[0]) )) + __pyx_t_26)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_27 * __pyx_v_Ds.strides[0]) )) + __pyx_t_28)) )))));
+7216: upar2 = us[0,ii]**2 + us[1,ii]**2
__pyx_t_29 = 0;
__pyx_t_30 = __pyx_v_ii;
__pyx_t_31 = 1;
__pyx_t_32 = __pyx_v_ii;
__pyx_v_upar2 = (pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_29 * __pyx_v_us.strides[0]) )) + __pyx_t_30)) ))), 2.0) + pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_31 * __pyx_v_us.strides[0]) )) + __pyx_t_32)) ))), 2.0));
+7217: Dpar2 = Ds[0,ii]**2 + Ds[1,ii]**2
__pyx_t_33 = 0;
__pyx_t_34 = __pyx_v_ii;
__pyx_t_35 = 1;
__pyx_t_36 = __pyx_v_ii;
__pyx_v_Dpar2 = (pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_33 * __pyx_v_Ds.strides[0]) )) + __pyx_t_34)) ))), 2.0) + pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_35 * __pyx_v_Ds.strides[0]) )) + __pyx_t_36)) ))), 2.0));
7218: # Prepare in case Forbid is True
+7219: if Forbid0 and not Dpar2>0:
__pyx_t_12 = (__pyx_v_Forbid0 != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L9_bool_binop_done;
}
__pyx_t_12 = ((!((__pyx_v_Dpar2 > 0.0) != 0)) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L9_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+7220: Forbidbis = 0
__pyx_v_Forbidbis = 0;
+7221: if Forbidbis:
__pyx_t_11 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_11) {
/* … */
}
7222: # Compute coordinates of the 2 points where the tangents touch the inner circle
+7223: L = Csqrt(Dpar2-Rmin**2)
__pyx_v_L = sqrt((__pyx_v_Dpar2 - pow(__pyx_v_Rmin, 2.0)));
+7224: S1X = (Rmin**2*Ds[0,ii]+Rmin*Ds[1,ii]*L)/Dpar2
__pyx_t_37 = 0;
__pyx_t_38 = __pyx_v_ii;
__pyx_t_39 = 1;
__pyx_t_40 = __pyx_v_ii;
__pyx_v_S1X = (((pow(__pyx_v_Rmin, 2.0) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_37 * __pyx_v_Ds.strides[0]) )) + __pyx_t_38)) )))) + ((__pyx_v_Rmin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_39 * __pyx_v_Ds.strides[0]) )) + __pyx_t_40)) )))) * __pyx_v_L)) / __pyx_v_Dpar2);
+7225: S1Y = (Rmin**2*Ds[1,ii]-Rmin*Ds[0,ii]*L)/Dpar2
__pyx_t_41 = 1;
__pyx_t_42 = __pyx_v_ii;
__pyx_t_43 = 0;
__pyx_t_44 = __pyx_v_ii;
__pyx_v_S1Y = (((pow(__pyx_v_Rmin, 2.0) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_41 * __pyx_v_Ds.strides[0]) )) + __pyx_t_42)) )))) - ((__pyx_v_Rmin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_43 * __pyx_v_Ds.strides[0]) )) + __pyx_t_44)) )))) * __pyx_v_L)) / __pyx_v_Dpar2);
+7226: S2X = (Rmin**2*Ds[0,ii]-Rmin*Ds[1,ii]*L)/Dpar2
__pyx_t_45 = 0;
__pyx_t_46 = __pyx_v_ii;
__pyx_t_47 = 1;
__pyx_t_48 = __pyx_v_ii;
__pyx_v_S2X = (((pow(__pyx_v_Rmin, 2.0) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_45 * __pyx_v_Ds.strides[0]) )) + __pyx_t_46)) )))) - ((__pyx_v_Rmin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_47 * __pyx_v_Ds.strides[0]) )) + __pyx_t_48)) )))) * __pyx_v_L)) / __pyx_v_Dpar2);
+7227: S2Y = (Rmin**2*Ds[1,ii]+Rmin*Ds[0,ii]*L)/Dpar2
__pyx_t_49 = 1;
__pyx_t_50 = __pyx_v_ii;
__pyx_t_51 = 0;
__pyx_t_52 = __pyx_v_ii;
__pyx_v_S2Y = (((pow(__pyx_v_Rmin, 2.0) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_49 * __pyx_v_Ds.strides[0]) )) + __pyx_t_50)) )))) + ((__pyx_v_Rmin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_51 * __pyx_v_Ds.strides[0]) )) + __pyx_t_52)) )))) * __pyx_v_L)) / __pyx_v_Dpar2);
7228:
7229: # Compute all solutions
7230: # Set tolerance value for us[2,ii]
7231: # EpsUz is the tolerated DZ across 20m (max Tokamak size)
+7232: Crit2 = EpsUz**2*upar2/400.
__pyx_v_Crit2 = ((pow(__pyx_v_EpsUz, 2.0) * __pyx_v_upar2) / 400.);
+7233: kout, kin, Done = 1.e12, 1e12, 0
__pyx_t_13 = 1.e12;
__pyx_t_14 = 1e12;
__pyx_t_53 = 0;
__pyx_v_kout = __pyx_t_13;
__pyx_v_kin = __pyx_t_14;
__pyx_v_Done = __pyx_t_53;
7234: # Case with horizontal semi-line
+7235: if us[2,ii]**2<Crit2:
__pyx_t_54 = 2;
__pyx_t_55 = __pyx_v_ii;
__pyx_t_11 = ((pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_54 * __pyx_v_us.strides[0]) )) + __pyx_t_55)) ))), 2.0) < __pyx_v_Crit2) != 0);
if (__pyx_t_11) {
/* … */
goto __pyx_L12;
}
+7236: for jj in range(0,Ns):
__pyx_t_53 = __pyx_v_Ns;
__pyx_t_56 = __pyx_t_53;
for (__pyx_t_57 = 0; __pyx_t_57 < __pyx_t_56; __pyx_t_57+=1) {
__pyx_v_jj = __pyx_t_57;
7237: # Solutions exist only in the case with non-horizontal segment (i.e.: cone, not plane)
+7238: if (VPoly[1,jj+1]-VPoly[1,jj])**2>EpsVz**2:
__pyx_t_58 = 1;
__pyx_t_59 = (__pyx_v_jj + 1);
__pyx_t_60 = 1;
__pyx_t_61 = __pyx_v_jj;
__pyx_t_11 = ((pow(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_58 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_59)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_60 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_61)) )))), 2.0) > pow(__pyx_v_EpsVz, 2.0)) != 0);
if (__pyx_t_11) {
/* … */
}
}
+7239: q = (Ds[2,ii]-VPoly[1,jj])/(VPoly[1,jj+1]-VPoly[1,jj])
__pyx_t_62 = 2;
__pyx_t_63 = __pyx_v_ii;
__pyx_t_64 = 1;
__pyx_t_65 = __pyx_v_jj;
__pyx_t_66 = 1;
__pyx_t_67 = (__pyx_v_jj + 1);
__pyx_t_68 = 1;
__pyx_t_69 = __pyx_v_jj;
__pyx_v_q = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_62 * __pyx_v_Ds.strides[0]) )) + __pyx_t_63)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_64 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_65)) )))) / ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_66 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_67)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_68 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_69)) )))));
7240: # The intersection must stand on the segment
+7241: if q>=0 and q<1:
__pyx_t_12 = ((__pyx_v_q >= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L17_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_q < 1.0) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L17_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+7242: C = q**2*(VPoly[0,jj+1]-VPoly[0,jj])**2 + 2.*q*VPoly[0,jj]*(VPoly[0,jj+1]-VPoly[0,jj]) + VPoly[0,jj]**2
__pyx_t_70 = 0;
__pyx_t_71 = (__pyx_v_jj + 1);
__pyx_t_72 = 0;
__pyx_t_73 = __pyx_v_jj;
__pyx_t_74 = 0;
__pyx_t_75 = __pyx_v_jj;
__pyx_t_76 = 0;
__pyx_t_77 = (__pyx_v_jj + 1);
__pyx_t_78 = 0;
__pyx_t_79 = __pyx_v_jj;
__pyx_t_80 = 0;
__pyx_t_81 = __pyx_v_jj;
__pyx_v_C = (((pow(__pyx_v_q, 2.0) * pow(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_70 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_71)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_72 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_73)) )))), 2.0)) + (((2. * __pyx_v_q) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_74 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_75)) )))) * ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_76 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_77)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_78 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_79)) )))))) + pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_80 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_81)) ))), 2.0));
+7243: delta = upscaDp**2 - upar2*(Dpar2-C)
__pyx_v_delta = (pow(__pyx_v_upscaDp, 2.0) - (__pyx_v_upar2 * (__pyx_v_Dpar2 - __pyx_v_C)));
+7244: if delta>0.:
__pyx_t_11 = ((__pyx_v_delta > 0.) != 0);
if (__pyx_t_11) {
/* … */
}
+7245: sqd = Csqrt(delta)
__pyx_v_sqd = sqrt(__pyx_v_delta);
7246: # The intersection must be on the semi-line (i.e.: k>=0)
7247: # First solution
+7248: if -upscaDp - sqd >=0:
__pyx_t_11 = ((((-__pyx_v_upscaDp) - __pyx_v_sqd) >= 0.0) != 0);
if (__pyx_t_11) {
/* … */
}
+7249: k = (-upscaDp - sqd)/upar2
__pyx_v_k = (((-__pyx_v_upscaDp) - __pyx_v_sqd) / __pyx_v_upar2);
+7250: sol0, sol1 = Ds[0,ii] + k*us[0,ii], Ds[1,ii] + k*us[1,ii]
__pyx_t_82 = 0;
__pyx_t_83 = __pyx_v_ii;
__pyx_t_84 = 0;
__pyx_t_85 = __pyx_v_ii;
__pyx_t_14 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_82 * __pyx_v_Ds.strides[0]) )) + __pyx_t_83)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_84 * __pyx_v_us.strides[0]) )) + __pyx_t_85)) )))));
__pyx_t_86 = 1;
__pyx_t_87 = __pyx_v_ii;
__pyx_t_88 = 1;
__pyx_t_89 = __pyx_v_ii;
__pyx_t_13 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_86 * __pyx_v_Ds.strides[0]) )) + __pyx_t_87)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_88 * __pyx_v_us.strides[0]) )) + __pyx_t_89)) )))));
__pyx_v_sol0 = __pyx_t_14;
__pyx_v_sol1 = __pyx_t_13;
+7251: if Forbidbis:
__pyx_t_11 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_11) {
/* … */
}
+7252: sca0 = (sol0-S1X)*Ds[0,ii] + (sol1-S1Y)*Ds[1,ii]
__pyx_t_90 = 0;
__pyx_t_91 = __pyx_v_ii;
__pyx_t_92 = 1;
__pyx_t_93 = __pyx_v_ii;
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_S1X) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_90 * __pyx_v_Ds.strides[0]) )) + __pyx_t_91)) )))) + ((__pyx_v_sol1 - __pyx_v_S1Y) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_92 * __pyx_v_Ds.strides[0]) )) + __pyx_t_93)) )))));
+7253: sca1 = (sol0-S1X)*S1X + (sol1-S1Y)*S1Y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_S1X) * __pyx_v_S1X) + ((__pyx_v_sol1 - __pyx_v_S1Y) * __pyx_v_S1Y));
+7254: sca2 = (sol0-S2X)*S2X + (sol1-S2Y)*S2Y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_S2X) * __pyx_v_S2X) + ((__pyx_v_sol1 - __pyx_v_S2Y) * __pyx_v_S2Y));
+7255: if not Forbidbis or (Forbidbis and not (sca0<0 and sca1<0 and sca2<0)):
__pyx_t_12 = ((!(__pyx_v_Forbidbis != 0)) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L23_bool_binop_done;
}
__pyx_t_12 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L23_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_12 = __pyx_t_94;
goto __pyx_L26_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_12 = __pyx_t_94;
goto __pyx_L26_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_12 = __pyx_t_94;
__pyx_L26_bool_binop_done:;
__pyx_t_94 = ((!__pyx_t_12) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L23_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7256: # Get the normalized perpendicular vector at intersection
+7257: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
7258: # Check sol inside the Lim
+7259: if Lim is None or (Lim is not None and ((L0<L1 and L0<=phi and phi<=L1) or (L0>L1 and (phi>=L0 or phi<=L1)))):
__pyx_t_94 = (__pyx_v_Lim == Py_None);
__pyx_t_12 = (__pyx_t_94 != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_12 = (__pyx_v_Lim != Py_None);
__pyx_t_94 = (__pyx_t_12 != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_L0 < __pyx_v_L1) != 0);
if (!__pyx_t_94) {
goto __pyx_L33_next_or;
} else {
}
__pyx_t_94 = ((__pyx_v_L0 <= __pyx_v_phi) != 0);
if (!__pyx_t_94) {
goto __pyx_L33_next_or;
} else {
}
__pyx_t_94 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L30_bool_binop_done;
}
__pyx_L33_next_or:;
__pyx_t_94 = ((__pyx_v_L0 > __pyx_v_L1) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_phi >= __pyx_v_L0) != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L30_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L30_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7260: # Get the scalar product to determine entry or exit point
+7261: sca = Ccos(phi)*vIn[0,jj]*us[0,ii] + Csin(phi)*vIn[0,jj]*us[1,ii] + vIn[1,jj]*us[2,ii]
__pyx_t_95 = 0;
__pyx_t_96 = __pyx_v_jj;
__pyx_t_97 = 0;
__pyx_t_98 = __pyx_v_ii;
__pyx_t_99 = 0;
__pyx_t_100 = __pyx_v_jj;
__pyx_t_101 = 1;
__pyx_t_102 = __pyx_v_ii;
__pyx_t_103 = 1;
__pyx_t_104 = __pyx_v_jj;
__pyx_t_105 = 2;
__pyx_t_106 = __pyx_v_ii;
__pyx_v_sca = ((((cos(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_95 * __pyx_v_vIn.strides[0]) )) + __pyx_t_96)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_97 * __pyx_v_us.strides[0]) )) + __pyx_t_98)) )))) + ((sin(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_99 * __pyx_v_vIn.strides[0]) )) + __pyx_t_100)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_101 * __pyx_v_us.strides[0]) )) + __pyx_t_102)) ))))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_103 * __pyx_v_vIn.strides[0]) )) + __pyx_t_104)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_105 * __pyx_v_us.strides[0]) )) + __pyx_t_106)) )))));
+7262: if sca<=0 and k<kout:
__pyx_t_94 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L39_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L39_bool_binop_done:;
if (__pyx_t_11) {
/* … */
goto __pyx_L38;
}
+7263: kout = k
__pyx_v_kout = __pyx_v_k;
+7264: indout = jj
__pyx_v_indout = __pyx_v_jj;
+7265: Done = 1
__pyx_v_Done = 1;
7266: #print(1, k)
+7267: elif sca>=0 and k<min(kin,kout):
__pyx_t_94 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L41_bool_binop_done;
}
__pyx_t_13 = __pyx_v_kout;
__pyx_t_14 = __pyx_v_kin;
if (((__pyx_t_13 < __pyx_t_14) != 0)) {
__pyx_t_107 = __pyx_t_13;
} else {
__pyx_t_107 = __pyx_t_14;
}
__pyx_t_94 = ((__pyx_v_k < __pyx_t_107) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L41_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
__pyx_L38:;
+7268: kin = k
__pyx_v_kin = __pyx_v_k;
+7269: indin = jj
__pyx_v_indin = __pyx_v_jj;
7270: #print(2, k)
7271:
7272: # Second solution
+7273: if -upscaDp + sqd >=0:
__pyx_t_11 = ((((-__pyx_v_upscaDp) + __pyx_v_sqd) >= 0.0) != 0);
if (__pyx_t_11) {
/* … */
}
+7274: k = (-upscaDp + sqd)/upar2
__pyx_v_k = (((-__pyx_v_upscaDp) + __pyx_v_sqd) / __pyx_v_upar2);
+7275: sol0, sol1 = Ds[0,ii] + k*us[0,ii], Ds[1,ii] + k*us[1,ii]
__pyx_t_108 = 0;
__pyx_t_109 = __pyx_v_ii;
__pyx_t_110 = 0;
__pyx_t_111 = __pyx_v_ii;
__pyx_t_107 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_108 * __pyx_v_Ds.strides[0]) )) + __pyx_t_109)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_110 * __pyx_v_us.strides[0]) )) + __pyx_t_111)) )))));
__pyx_t_112 = 1;
__pyx_t_113 = __pyx_v_ii;
__pyx_t_114 = 1;
__pyx_t_115 = __pyx_v_ii;
__pyx_t_13 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_112 * __pyx_v_Ds.strides[0]) )) + __pyx_t_113)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_114 * __pyx_v_us.strides[0]) )) + __pyx_t_115)) )))));
__pyx_v_sol0 = __pyx_t_107;
__pyx_v_sol1 = __pyx_t_13;
+7276: if Forbidbis:
__pyx_t_11 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_11) {
/* … */
}
+7277: sca0 = (sol0-S1X)*Ds[0,ii] + (sol1-S1Y)*Ds[1,ii]
__pyx_t_116 = 0;
__pyx_t_117 = __pyx_v_ii;
__pyx_t_118 = 1;
__pyx_t_119 = __pyx_v_ii;
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_S1X) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_116 * __pyx_v_Ds.strides[0]) )) + __pyx_t_117)) )))) + ((__pyx_v_sol1 - __pyx_v_S1Y) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_118 * __pyx_v_Ds.strides[0]) )) + __pyx_t_119)) )))));
+7278: sca1 = (sol0-S1X)*S1X + (sol1-S1Y)*S1Y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_S1X) * __pyx_v_S1X) + ((__pyx_v_sol1 - __pyx_v_S1Y) * __pyx_v_S1Y));
+7279: sca2 = (sol0-S2X)*S2X + (sol1-S2Y)*S2Y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_S2X) * __pyx_v_S2X) + ((__pyx_v_sol1 - __pyx_v_S2Y) * __pyx_v_S2Y));
+7280: if not Forbidbis or (Forbidbis and not (sca0<0 and sca1<0 and sca2<0)):
__pyx_t_94 = ((!(__pyx_v_Forbidbis != 0)) != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L46_bool_binop_done;
}
__pyx_t_94 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L46_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_94 = __pyx_t_12;
goto __pyx_L49_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_94 = __pyx_t_12;
goto __pyx_L49_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_94 = __pyx_t_12;
__pyx_L49_bool_binop_done:;
__pyx_t_12 = ((!__pyx_t_94) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L46_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7281: # Get the normalized perpendicular vector at intersection
+7282: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+7283: if Lim is None or (Lim is not None and ((L0<L1 and L0<=phi and phi<=L1) or (L0>L1 and (phi>=L0 or phi<=L1)))):
__pyx_t_12 = (__pyx_v_Lim == Py_None);
__pyx_t_94 = (__pyx_t_12 != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L53_bool_binop_done;
}
__pyx_t_94 = (__pyx_v_Lim != Py_None);
__pyx_t_12 = (__pyx_t_94 != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L53_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_L0 < __pyx_v_L1) != 0);
if (!__pyx_t_12) {
goto __pyx_L56_next_or;
} else {
}
__pyx_t_12 = ((__pyx_v_L0 <= __pyx_v_phi) != 0);
if (!__pyx_t_12) {
goto __pyx_L56_next_or;
} else {
}
__pyx_t_12 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L53_bool_binop_done;
}
__pyx_L56_next_or:;
__pyx_t_12 = ((__pyx_v_L0 > __pyx_v_L1) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L53_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_phi >= __pyx_v_L0) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L53_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L53_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7284: # Get the scalar product to determine entry or exit point
+7285: sca = Ccos(phi)*vIn[0,jj]*us[0,ii] + Csin(phi)*vIn[0,jj]*us[1,ii] + vIn[1,jj]*us[2,ii]
__pyx_t_120 = 0;
__pyx_t_121 = __pyx_v_jj;
__pyx_t_122 = 0;
__pyx_t_123 = __pyx_v_ii;
__pyx_t_124 = 0;
__pyx_t_125 = __pyx_v_jj;
__pyx_t_126 = 1;
__pyx_t_127 = __pyx_v_ii;
__pyx_t_128 = 1;
__pyx_t_129 = __pyx_v_jj;
__pyx_t_130 = 2;
__pyx_t_131 = __pyx_v_ii;
__pyx_v_sca = ((((cos(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_120 * __pyx_v_vIn.strides[0]) )) + __pyx_t_121)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_122 * __pyx_v_us.strides[0]) )) + __pyx_t_123)) )))) + ((sin(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_124 * __pyx_v_vIn.strides[0]) )) + __pyx_t_125)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_126 * __pyx_v_us.strides[0]) )) + __pyx_t_127)) ))))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_128 * __pyx_v_vIn.strides[0]) )) + __pyx_t_129)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_130 * __pyx_v_us.strides[0]) )) + __pyx_t_131)) )))));
+7286: if sca<=0 and k<kout:
__pyx_t_12 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L62_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L62_bool_binop_done:;
if (__pyx_t_11) {
/* … */
goto __pyx_L61;
}
+7287: kout = k
__pyx_v_kout = __pyx_v_k;
+7288: indout = jj
__pyx_v_indout = __pyx_v_jj;
+7289: Done = 1
__pyx_v_Done = 1;
7290: #print(3, k)
+7291: elif sca>=0 and k<min(kin,kout):
__pyx_t_12 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L64_bool_binop_done;
}
__pyx_t_13 = __pyx_v_kout;
__pyx_t_107 = __pyx_v_kin;
if (((__pyx_t_13 < __pyx_t_107) != 0)) {
__pyx_t_14 = __pyx_t_13;
} else {
__pyx_t_14 = __pyx_t_107;
}
__pyx_t_12 = ((__pyx_v_k < __pyx_t_14) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L64_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
__pyx_L61:;
+7292: kin = k
__pyx_v_kin = __pyx_v_k;
+7293: indin = jj
__pyx_v_indin = __pyx_v_jj;
7294: #print(4, k)
7295:
7296: # More general non-horizontal semi-line case
7297: else:
+7298: for jj in range(Ns):
/*else*/ {
__pyx_t_53 = __pyx_v_Ns;
__pyx_t_56 = __pyx_t_53;
for (__pyx_t_57 = 0; __pyx_t_57 < __pyx_t_56; __pyx_t_57+=1) {
__pyx_v_jj = __pyx_t_57;
+7299: v0, v1 = VPoly[0,jj+1]-VPoly[0,jj], VPoly[1,jj+1]-VPoly[1,jj]
__pyx_t_132 = 0;
__pyx_t_133 = (__pyx_v_jj + 1);
__pyx_t_134 = 0;
__pyx_t_135 = __pyx_v_jj;
__pyx_t_14 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_132 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_133)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_134 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_135)) ))));
__pyx_t_136 = 1;
__pyx_t_137 = (__pyx_v_jj + 1);
__pyx_t_138 = 1;
__pyx_t_139 = __pyx_v_jj;
__pyx_t_13 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_136 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_137)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_138 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_139)) ))));
__pyx_v_v0 = __pyx_t_14;
__pyx_v_v1 = __pyx_t_13;
+7300: A = v0**2 - upar2*(v1/us[2,ii])**2
__pyx_t_140 = 2;
__pyx_t_141 = __pyx_v_ii;
__pyx_v_A = (pow(__pyx_v_v0, 2.0) - (__pyx_v_upar2 * pow((__pyx_v_v1 / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_140 * __pyx_v_us.strides[0]) )) + __pyx_t_141)) )))), 2.0)));
+7301: B = VPoly[0,jj]*v0 + v1*(Ds[2,ii]-VPoly[1,jj])*upar2/us[2,ii]**2 - upscaDp*v1/us[2,ii]
__pyx_t_142 = 0;
__pyx_t_143 = __pyx_v_jj;
__pyx_t_144 = 2;
__pyx_t_145 = __pyx_v_ii;
__pyx_t_146 = 1;
__pyx_t_147 = __pyx_v_jj;
__pyx_t_148 = 2;
__pyx_t_149 = __pyx_v_ii;
__pyx_t_150 = 2;
__pyx_t_151 = __pyx_v_ii;
__pyx_v_B = ((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_142 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_143)) ))) * __pyx_v_v0) + (((__pyx_v_v1 * ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_144 * __pyx_v_Ds.strides[0]) )) + __pyx_t_145)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_146 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_147)) ))))) * __pyx_v_upar2) / pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_148 * __pyx_v_us.strides[0]) )) + __pyx_t_149)) ))), 2.0))) - ((__pyx_v_upscaDp * __pyx_v_v1) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_150 * __pyx_v_us.strides[0]) )) + __pyx_t_151)) )))));
+7302: C = -upar2*(Ds[2,ii]-VPoly[1,jj])**2/us[2,ii]**2 + 2.*upscaDp*(Ds[2,ii]-VPoly[1,jj])/us[2,ii] - Dpar2 + VPoly[0,jj]**2
__pyx_t_152 = 2;
__pyx_t_153 = __pyx_v_ii;
__pyx_t_154 = 1;
__pyx_t_155 = __pyx_v_jj;
__pyx_t_156 = 2;
__pyx_t_157 = __pyx_v_ii;
__pyx_t_158 = 2;
__pyx_t_159 = __pyx_v_ii;
__pyx_t_160 = 1;
__pyx_t_161 = __pyx_v_jj;
__pyx_t_162 = 2;
__pyx_t_163 = __pyx_v_ii;
__pyx_t_164 = 0;
__pyx_t_165 = __pyx_v_jj;
__pyx_v_C = ((((((-__pyx_v_upar2) * pow(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_152 * __pyx_v_Ds.strides[0]) )) + __pyx_t_153)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_154 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_155)) )))), 2.0)) / pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_156 * __pyx_v_us.strides[0]) )) + __pyx_t_157)) ))), 2.0)) + (((2. * __pyx_v_upscaDp) * ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_158 * __pyx_v_Ds.strides[0]) )) + __pyx_t_159)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_160 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_161)) ))))) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_162 * __pyx_v_us.strides[0]) )) + __pyx_t_163)) ))))) - __pyx_v_Dpar2) + pow((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_164 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_165)) ))), 2.0));
7303:
+7304: if A**2<EpsA**2 and B**2>EpsB**2:
__pyx_t_12 = ((pow(__pyx_v_A, 2.0) < pow(__pyx_v_EpsA, 2.0)) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L69_bool_binop_done;
}
__pyx_t_12 = ((pow(__pyx_v_B, 2.0) > pow(__pyx_v_EpsB, 2.0)) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L69_bool_binop_done:;
if (__pyx_t_11) {
/* … */
goto __pyx_L68;
}
+7305: q = -C/(2.*B)
__pyx_v_q = ((-__pyx_v_C) / (2. * __pyx_v_B));
+7306: if q>=0. and q<1.:
__pyx_t_12 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L72_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_q < 1.) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L72_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+7307: k = (q*v1 - (Ds[2,ii]-VPoly[1,jj]))/us[2,ii]
__pyx_t_166 = 2;
__pyx_t_167 = __pyx_v_ii;
__pyx_t_168 = 1;
__pyx_t_169 = __pyx_v_jj;
__pyx_t_170 = 2;
__pyx_t_171 = __pyx_v_ii;
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_166 * __pyx_v_Ds.strides[0]) )) + __pyx_t_167)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_168 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_169)) ))))) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_170 * __pyx_v_us.strides[0]) )) + __pyx_t_171)) ))));
+7308: if k>=0:
__pyx_t_11 = ((__pyx_v_k >= 0.0) != 0);
if (__pyx_t_11) {
/* … */
}
+7309: sol0, sol1 = Ds[0,ii] + k*us[0,ii], Ds[1,ii] + k*us[1,ii]
__pyx_t_172 = 0;
__pyx_t_173 = __pyx_v_ii;
__pyx_t_174 = 0;
__pyx_t_175 = __pyx_v_ii;
__pyx_t_13 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_172 * __pyx_v_Ds.strides[0]) )) + __pyx_t_173)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_174 * __pyx_v_us.strides[0]) )) + __pyx_t_175)) )))));
__pyx_t_176 = 1;
__pyx_t_177 = __pyx_v_ii;
__pyx_t_178 = 1;
__pyx_t_179 = __pyx_v_ii;
__pyx_t_14 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_176 * __pyx_v_Ds.strides[0]) )) + __pyx_t_177)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_178 * __pyx_v_us.strides[0]) )) + __pyx_t_179)) )))));
__pyx_v_sol0 = __pyx_t_13;
__pyx_v_sol1 = __pyx_t_14;
+7310: if Forbidbis:
__pyx_t_11 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_11) {
/* … */
}
+7311: sca0 = (sol0-S1X)*Ds[0,ii] + (sol1-S1Y)*Ds[1,ii]
__pyx_t_180 = 0;
__pyx_t_181 = __pyx_v_ii;
__pyx_t_182 = 1;
__pyx_t_183 = __pyx_v_ii;
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_S1X) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_180 * __pyx_v_Ds.strides[0]) )) + __pyx_t_181)) )))) + ((__pyx_v_sol1 - __pyx_v_S1Y) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_182 * __pyx_v_Ds.strides[0]) )) + __pyx_t_183)) )))));
+7312: sca1 = (sol0-S1X)*S1X + (sol1-S1Y)*S1Y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_S1X) * __pyx_v_S1X) + ((__pyx_v_sol1 - __pyx_v_S1Y) * __pyx_v_S1Y));
+7313: sca2 = (sol0-S2X)*S2X + (sol1-S2Y)*S2Y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_S2X) * __pyx_v_S2X) + ((__pyx_v_sol1 - __pyx_v_S2Y) * __pyx_v_S2Y));
7314: #print 1, k, kout, sca0, sca1, sca2
+7315: if sca0<0 and sca1<0 and sca2<0:
__pyx_t_12 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L77_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L77_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L77_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+7316: continue
goto __pyx_L66_continue;
7317: # Get the normalized perpendicular vector at intersection
+7318: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+7319: if Lim is None or (Lim is not None and ((L0<L1 and L0<=phi and phi<=L1) or (L0>L1 and (phi>=L0 or phi<=L1)))):
__pyx_t_12 = (__pyx_v_Lim == Py_None);
__pyx_t_94 = (__pyx_t_12 != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L81_bool_binop_done;
}
__pyx_t_94 = (__pyx_v_Lim != Py_None);
__pyx_t_12 = (__pyx_t_94 != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L81_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_L0 < __pyx_v_L1) != 0);
if (!__pyx_t_12) {
goto __pyx_L84_next_or;
} else {
}
__pyx_t_12 = ((__pyx_v_L0 <= __pyx_v_phi) != 0);
if (!__pyx_t_12) {
goto __pyx_L84_next_or;
} else {
}
__pyx_t_12 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L81_bool_binop_done;
}
__pyx_L84_next_or:;
__pyx_t_12 = ((__pyx_v_L0 > __pyx_v_L1) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L81_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_phi >= __pyx_v_L0) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L81_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L81_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7320: # Get the scalar product to determine entry or exit point
+7321: sca = Ccos(phi)*vIn[0,jj]*us[0,ii] + Csin(phi)*vIn[0,jj]*us[1,ii] + vIn[1,jj]*us[2,ii]
__pyx_t_184 = 0;
__pyx_t_185 = __pyx_v_jj;
__pyx_t_186 = 0;
__pyx_t_187 = __pyx_v_ii;
__pyx_t_188 = 0;
__pyx_t_189 = __pyx_v_jj;
__pyx_t_190 = 1;
__pyx_t_191 = __pyx_v_ii;
__pyx_t_192 = 1;
__pyx_t_193 = __pyx_v_jj;
__pyx_t_194 = 2;
__pyx_t_195 = __pyx_v_ii;
__pyx_v_sca = ((((cos(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_184 * __pyx_v_vIn.strides[0]) )) + __pyx_t_185)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_186 * __pyx_v_us.strides[0]) )) + __pyx_t_187)) )))) + ((sin(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_188 * __pyx_v_vIn.strides[0]) )) + __pyx_t_189)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_190 * __pyx_v_us.strides[0]) )) + __pyx_t_191)) ))))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_192 * __pyx_v_vIn.strides[0]) )) + __pyx_t_193)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_194 * __pyx_v_us.strides[0]) )) + __pyx_t_195)) )))));
+7322: if sca<=0 and k<kout:
__pyx_t_12 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L90_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L90_bool_binop_done:;
if (__pyx_t_11) {
/* … */
goto __pyx_L89;
}
+7323: kout = k
__pyx_v_kout = __pyx_v_k;
+7324: indout = jj
__pyx_v_indout = __pyx_v_jj;
+7325: Done = 1
__pyx_v_Done = 1;
7326: #print(5, k)
+7327: elif sca>=0 and k<min(kin,kout):
__pyx_t_12 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L92_bool_binop_done;
}
__pyx_t_14 = __pyx_v_kout;
__pyx_t_13 = __pyx_v_kin;
if (((__pyx_t_14 < __pyx_t_13) != 0)) {
__pyx_t_107 = __pyx_t_14;
} else {
__pyx_t_107 = __pyx_t_13;
}
__pyx_t_12 = ((__pyx_v_k < __pyx_t_107) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L92_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
__pyx_L89:;
+7328: kin = k
__pyx_v_kin = __pyx_v_k;
+7329: indin = jj
__pyx_v_indin = __pyx_v_jj;
7330: #print(6, k)
7331:
+7332: elif A**2>=EpsA**2 and B**2>A*C:
__pyx_t_12 = ((pow(__pyx_v_A, 2.0) >= pow(__pyx_v_EpsA, 2.0)) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L94_bool_binop_done;
}
__pyx_t_12 = ((pow(__pyx_v_B, 2.0) > (__pyx_v_A * __pyx_v_C)) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L94_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
__pyx_L68:;
__pyx_L66_continue:;
}
}
__pyx_L12:;
+7333: sqd = Csqrt(B**2-A*C)
__pyx_v_sqd = sqrt((pow(__pyx_v_B, 2.0) - (__pyx_v_A * __pyx_v_C)));
7334: # First solution
+7335: q = (-B + sqd)/A
__pyx_v_q = (((-__pyx_v_B) + __pyx_v_sqd) / __pyx_v_A);
+7336: if q>=0. and q<1.:
__pyx_t_12 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L97_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_q < 1.) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L97_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+7337: k = (q*v1 - (Ds[2,ii]-VPoly[1,jj]))/us[2,ii]
__pyx_t_196 = 2;
__pyx_t_197 = __pyx_v_ii;
__pyx_t_198 = 1;
__pyx_t_199 = __pyx_v_jj;
__pyx_t_200 = 2;
__pyx_t_201 = __pyx_v_ii;
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_196 * __pyx_v_Ds.strides[0]) )) + __pyx_t_197)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_198 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_199)) ))))) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_200 * __pyx_v_us.strides[0]) )) + __pyx_t_201)) ))));
+7338: if k>=0.:
__pyx_t_11 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_11) {
/* … */
}
+7339: sol0, sol1 = Ds[0,ii] + k*us[0,ii], Ds[1,ii] + k*us[1,ii]
__pyx_t_202 = 0;
__pyx_t_203 = __pyx_v_ii;
__pyx_t_204 = 0;
__pyx_t_205 = __pyx_v_ii;
__pyx_t_107 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_202 * __pyx_v_Ds.strides[0]) )) + __pyx_t_203)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_204 * __pyx_v_us.strides[0]) )) + __pyx_t_205)) )))));
__pyx_t_206 = 1;
__pyx_t_207 = __pyx_v_ii;
__pyx_t_208 = 1;
__pyx_t_209 = __pyx_v_ii;
__pyx_t_14 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_206 * __pyx_v_Ds.strides[0]) )) + __pyx_t_207)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_208 * __pyx_v_us.strides[0]) )) + __pyx_t_209)) )))));
__pyx_v_sol0 = __pyx_t_107;
__pyx_v_sol1 = __pyx_t_14;
+7340: if Forbidbis:
__pyx_t_11 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_11) {
/* … */
}
+7341: sca0 = (sol0-S1X)*Ds[0,ii] + (sol1-S1Y)*Ds[1,ii]
__pyx_t_210 = 0;
__pyx_t_211 = __pyx_v_ii;
__pyx_t_212 = 1;
__pyx_t_213 = __pyx_v_ii;
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_S1X) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_210 * __pyx_v_Ds.strides[0]) )) + __pyx_t_211)) )))) + ((__pyx_v_sol1 - __pyx_v_S1Y) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_212 * __pyx_v_Ds.strides[0]) )) + __pyx_t_213)) )))));
+7342: sca1 = (sol0-S1X)*S1X + (sol1-S1Y)*S1Y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_S1X) * __pyx_v_S1X) + ((__pyx_v_sol1 - __pyx_v_S1Y) * __pyx_v_S1Y));
+7343: sca2 = (sol0-S2X)*S2X + (sol1-S2Y)*S2Y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_S2X) * __pyx_v_S2X) + ((__pyx_v_sol1 - __pyx_v_S2Y) * __pyx_v_S2Y));
7344: #print 2, k, kout, sca0, sca1, sca2
+7345: if not Forbidbis or (Forbidbis and not (sca0<0 and sca1<0 and sca2<0)):
__pyx_t_12 = ((!(__pyx_v_Forbidbis != 0)) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L102_bool_binop_done;
}
__pyx_t_12 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L102_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_12 = __pyx_t_94;
goto __pyx_L105_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_12 = __pyx_t_94;
goto __pyx_L105_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_12 = __pyx_t_94;
__pyx_L105_bool_binop_done:;
__pyx_t_94 = ((!__pyx_t_12) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L102_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7346: # Get the normalized perpendicular vector at intersection
+7347: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+7348: if Lim is None or (Lim is not None and ((L0<L1 and L0<=phi and phi<=L1) or (L0>L1 and (phi>=L0 or phi<=L1)))):
__pyx_t_94 = (__pyx_v_Lim == Py_None);
__pyx_t_12 = (__pyx_t_94 != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L109_bool_binop_done;
}
__pyx_t_12 = (__pyx_v_Lim != Py_None);
__pyx_t_94 = (__pyx_t_12 != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L109_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_L0 < __pyx_v_L1) != 0);
if (!__pyx_t_94) {
goto __pyx_L112_next_or;
} else {
}
__pyx_t_94 = ((__pyx_v_L0 <= __pyx_v_phi) != 0);
if (!__pyx_t_94) {
goto __pyx_L112_next_or;
} else {
}
__pyx_t_94 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L109_bool_binop_done;
}
__pyx_L112_next_or:;
__pyx_t_94 = ((__pyx_v_L0 > __pyx_v_L1) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L109_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_phi >= __pyx_v_L0) != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L109_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L109_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7349: # Get the scalar product to determine entry or exit point
+7350: sca = Ccos(phi)*vIn[0,jj]*us[0,ii] + Csin(phi)*vIn[0,jj]*us[1,ii] + vIn[1,jj]*us[2,ii]
__pyx_t_214 = 0;
__pyx_t_215 = __pyx_v_jj;
__pyx_t_216 = 0;
__pyx_t_217 = __pyx_v_ii;
__pyx_t_218 = 0;
__pyx_t_219 = __pyx_v_jj;
__pyx_t_220 = 1;
__pyx_t_221 = __pyx_v_ii;
__pyx_t_222 = 1;
__pyx_t_223 = __pyx_v_jj;
__pyx_t_224 = 2;
__pyx_t_225 = __pyx_v_ii;
__pyx_v_sca = ((((cos(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_214 * __pyx_v_vIn.strides[0]) )) + __pyx_t_215)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_216 * __pyx_v_us.strides[0]) )) + __pyx_t_217)) )))) + ((sin(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_218 * __pyx_v_vIn.strides[0]) )) + __pyx_t_219)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_220 * __pyx_v_us.strides[0]) )) + __pyx_t_221)) ))))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_222 * __pyx_v_vIn.strides[0]) )) + __pyx_t_223)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_224 * __pyx_v_us.strides[0]) )) + __pyx_t_225)) )))));
+7351: if sca<=0 and k<kout:
__pyx_t_94 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L118_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L118_bool_binop_done:;
if (__pyx_t_11) {
/* … */
goto __pyx_L117;
}
+7352: kout = k
__pyx_v_kout = __pyx_v_k;
+7353: indout = jj
__pyx_v_indout = __pyx_v_jj;
+7354: Done = 1
__pyx_v_Done = 1;
7355: #print(7, k, q, A, B, C, sqd)
+7356: elif sca>=0 and k<min(kin,kout):
__pyx_t_94 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L120_bool_binop_done;
}
__pyx_t_14 = __pyx_v_kout;
__pyx_t_107 = __pyx_v_kin;
if (((__pyx_t_14 < __pyx_t_107) != 0)) {
__pyx_t_13 = __pyx_t_14;
} else {
__pyx_t_13 = __pyx_t_107;
}
__pyx_t_94 = ((__pyx_v_k < __pyx_t_13) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L120_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
__pyx_L117:;
+7357: kin = k
__pyx_v_kin = __pyx_v_k;
+7358: indin = jj
__pyx_v_indin = __pyx_v_jj;
7359: #print(8, k, jj)
7360:
7361: # Second solution
+7362: q = (-B - sqd)/A
__pyx_v_q = (((-__pyx_v_B) - __pyx_v_sqd) / __pyx_v_A);
+7363: if q>=0. and q<1.:
__pyx_t_94 = ((__pyx_v_q >= 0.) != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L123_bool_binop_done;
}
__pyx_t_94 = ((__pyx_v_q < 1.) != 0);
__pyx_t_11 = __pyx_t_94;
__pyx_L123_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
+7364: k = (q*v1 - (Ds[2,ii]-VPoly[1,jj]))/us[2,ii]
__pyx_t_226 = 2;
__pyx_t_227 = __pyx_v_ii;
__pyx_t_228 = 1;
__pyx_t_229 = __pyx_v_jj;
__pyx_t_230 = 2;
__pyx_t_231 = __pyx_v_ii;
__pyx_v_k = (((__pyx_v_q * __pyx_v_v1) - ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_226 * __pyx_v_Ds.strides[0]) )) + __pyx_t_227)) ))) - (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPoly.data + __pyx_t_228 * __pyx_v_VPoly.strides[0]) )) + __pyx_t_229)) ))))) / (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_230 * __pyx_v_us.strides[0]) )) + __pyx_t_231)) ))));
7365:
+7366: if k>=0.:
__pyx_t_11 = ((__pyx_v_k >= 0.) != 0);
if (__pyx_t_11) {
/* … */
}
+7367: sol0, sol1 = Ds[0,ii] + k*us[0,ii], Ds[1,ii] + k*us[1,ii]
__pyx_t_232 = 0;
__pyx_t_233 = __pyx_v_ii;
__pyx_t_234 = 0;
__pyx_t_235 = __pyx_v_ii;
__pyx_t_13 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_232 * __pyx_v_Ds.strides[0]) )) + __pyx_t_233)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_234 * __pyx_v_us.strides[0]) )) + __pyx_t_235)) )))));
__pyx_t_236 = 1;
__pyx_t_237 = __pyx_v_ii;
__pyx_t_238 = 1;
__pyx_t_239 = __pyx_v_ii;
__pyx_t_14 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_236 * __pyx_v_Ds.strides[0]) )) + __pyx_t_237)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_238 * __pyx_v_us.strides[0]) )) + __pyx_t_239)) )))));
__pyx_v_sol0 = __pyx_t_13;
__pyx_v_sol1 = __pyx_t_14;
+7368: if Forbidbis:
__pyx_t_11 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_11) {
/* … */
}
+7369: sca0 = (sol0-S1X)*Ds[0,ii] + (sol1-S1Y)*Ds[1,ii]
__pyx_t_240 = 0;
__pyx_t_241 = __pyx_v_ii;
__pyx_t_242 = 1;
__pyx_t_243 = __pyx_v_ii;
__pyx_v_sca0 = (((__pyx_v_sol0 - __pyx_v_S1X) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_240 * __pyx_v_Ds.strides[0]) )) + __pyx_t_241)) )))) + ((__pyx_v_sol1 - __pyx_v_S1Y) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_242 * __pyx_v_Ds.strides[0]) )) + __pyx_t_243)) )))));
+7370: sca1 = (sol0-S1X)*S1X + (sol1-S1Y)*S1Y
__pyx_v_sca1 = (((__pyx_v_sol0 - __pyx_v_S1X) * __pyx_v_S1X) + ((__pyx_v_sol1 - __pyx_v_S1Y) * __pyx_v_S1Y));
+7371: sca2 = (sol0-S2X)*S2X + (sol1-S2Y)*S2Y
__pyx_v_sca2 = (((__pyx_v_sol0 - __pyx_v_S2X) * __pyx_v_S2X) + ((__pyx_v_sol1 - __pyx_v_S2Y) * __pyx_v_S2Y));
7372: #print 3, k, kout, sca0, sca1, sca2
+7373: if not Forbidbis or (Forbidbis and not (sca0<0 and sca1<0 and sca2<0)):
__pyx_t_94 = ((!(__pyx_v_Forbidbis != 0)) != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L128_bool_binop_done;
}
__pyx_t_94 = (__pyx_v_Forbidbis != 0);
if (__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L128_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca0 < 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_94 = __pyx_t_12;
goto __pyx_L131_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca1 < 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_94 = __pyx_t_12;
goto __pyx_L131_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_sca2 < 0.0) != 0);
__pyx_t_94 = __pyx_t_12;
__pyx_L131_bool_binop_done:;
__pyx_t_12 = ((!__pyx_t_94) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L128_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7374: # Get the normalized perpendicular vector at intersection
+7375: phi = Catan2(sol1,sol0)
__pyx_v_phi = atan2(__pyx_v_sol1, __pyx_v_sol0);
+7376: if Lim is None or (Lim is not None and ((L0<L1 and L0<=phi and phi<=L1) or (L0>L1 and (phi>=L0 or phi<=L1)))):
__pyx_t_12 = (__pyx_v_Lim == Py_None);
__pyx_t_94 = (__pyx_t_12 != 0);
if (!__pyx_t_94) {
} else {
__pyx_t_11 = __pyx_t_94;
goto __pyx_L135_bool_binop_done;
}
__pyx_t_94 = (__pyx_v_Lim != Py_None);
__pyx_t_12 = (__pyx_t_94 != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L135_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_L0 < __pyx_v_L1) != 0);
if (!__pyx_t_12) {
goto __pyx_L138_next_or;
} else {
}
__pyx_t_12 = ((__pyx_v_L0 <= __pyx_v_phi) != 0);
if (!__pyx_t_12) {
goto __pyx_L138_next_or;
} else {
}
__pyx_t_12 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L135_bool_binop_done;
}
__pyx_L138_next_or:;
__pyx_t_12 = ((__pyx_v_L0 > __pyx_v_L1) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L135_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_phi >= __pyx_v_L0) != 0);
if (!__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L135_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_phi <= __pyx_v_L1) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L135_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
7377: # Get the scalar product to determine entry or exit point
+7378: sca = Ccos(phi)*vIn[0,jj]*us[0,ii] + Csin(phi)*vIn[0,jj]*us[1,ii] + vIn[1,jj]*us[2,ii]
__pyx_t_244 = 0;
__pyx_t_245 = __pyx_v_jj;
__pyx_t_246 = 0;
__pyx_t_247 = __pyx_v_ii;
__pyx_t_248 = 0;
__pyx_t_249 = __pyx_v_jj;
__pyx_t_250 = 1;
__pyx_t_251 = __pyx_v_ii;
__pyx_t_252 = 1;
__pyx_t_253 = __pyx_v_jj;
__pyx_t_254 = 2;
__pyx_t_255 = __pyx_v_ii;
__pyx_v_sca = ((((cos(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_244 * __pyx_v_vIn.strides[0]) )) + __pyx_t_245)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_246 * __pyx_v_us.strides[0]) )) + __pyx_t_247)) )))) + ((sin(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_248 * __pyx_v_vIn.strides[0]) )) + __pyx_t_249)) )))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_250 * __pyx_v_us.strides[0]) )) + __pyx_t_251)) ))))) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_252 * __pyx_v_vIn.strides[0]) )) + __pyx_t_253)) ))) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_254 * __pyx_v_us.strides[0]) )) + __pyx_t_255)) )))));
+7379: if sca<=0 and k<kout:
__pyx_t_12 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L144_bool_binop_done;
}
__pyx_t_12 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L144_bool_binop_done:;
if (__pyx_t_11) {
/* … */
goto __pyx_L143;
}
+7380: kout = k
__pyx_v_kout = __pyx_v_k;
+7381: indout = jj
__pyx_v_indout = __pyx_v_jj;
+7382: Done = 1
__pyx_v_Done = 1;
7383: #print(9, k, jj)
+7384: elif sca>=0 and k<min(kin,kout):
__pyx_t_12 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_12) {
} else {
__pyx_t_11 = __pyx_t_12;
goto __pyx_L146_bool_binop_done;
}
__pyx_t_14 = __pyx_v_kout;
__pyx_t_13 = __pyx_v_kin;
if (((__pyx_t_14 < __pyx_t_13) != 0)) {
__pyx_t_107 = __pyx_t_14;
} else {
__pyx_t_107 = __pyx_t_13;
}
__pyx_t_12 = ((__pyx_v_k < __pyx_t_107) != 0);
__pyx_t_11 = __pyx_t_12;
__pyx_L146_bool_binop_done:;
if (__pyx_t_11) {
/* … */
}
__pyx_L143:;
+7385: kin = k
__pyx_v_kin = __pyx_v_k;
+7386: indin = jj
__pyx_v_indin = __pyx_v_jj;
7387: #print(10, k, q, A, B, C, sqd, v0, v1, jj)
7388:
+7389: if Lim is not None:
__pyx_t_11 = (__pyx_v_Lim != Py_None);
__pyx_t_12 = (__pyx_t_11 != 0);
if (__pyx_t_12) {
/* … */
}
+7390: ephiIn0, ephiIn1 = -Csin(L0), Ccos(L0)
__pyx_t_107 = (-sin(__pyx_v_L0));
__pyx_t_14 = cos(__pyx_v_L0);
__pyx_v_ephiIn0 = __pyx_t_107;
__pyx_v_ephiIn1 = __pyx_t_14;
+7391: if Cabs(us[0,ii]*ephiIn0+us[1,ii]*ephiIn1)>EpsPlane:
__pyx_t_256 = 0;
__pyx_t_257 = __pyx_v_ii;
__pyx_t_258 = 1;
__pyx_t_259 = __pyx_v_ii;
__pyx_t_12 = ((fabs((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_256 * __pyx_v_us.strides[0]) )) + __pyx_t_257)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_258 * __pyx_v_us.strides[0]) )) + __pyx_t_259)) ))) * __pyx_v_ephiIn1))) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_12) {
/* … */
}
+7392: k = -(Ds[0,ii]*ephiIn0+Ds[1,ii]*ephiIn1)/(us[0,ii]*ephiIn0+us[1,ii]*ephiIn1)
__pyx_t_260 = 0;
__pyx_t_261 = __pyx_v_ii;
__pyx_t_262 = 1;
__pyx_t_263 = __pyx_v_ii;
__pyx_t_264 = 0;
__pyx_t_265 = __pyx_v_ii;
__pyx_t_266 = 1;
__pyx_t_267 = __pyx_v_ii;
__pyx_v_k = ((-(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_260 * __pyx_v_Ds.strides[0]) )) + __pyx_t_261)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_262 * __pyx_v_Ds.strides[0]) )) + __pyx_t_263)) ))) * __pyx_v_ephiIn1))) / (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_264 * __pyx_v_us.strides[0]) )) + __pyx_t_265)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_266 * __pyx_v_us.strides[0]) )) + __pyx_t_267)) ))) * __pyx_v_ephiIn1)));
+7393: if k>=0:
__pyx_t_12 = ((__pyx_v_k >= 0.0) != 0);
if (__pyx_t_12) {
/* … */
}
7394: # Check if in VPoly
+7395: sol0, sol1 = (Ds[0,ii]+k*us[0,ii])*Ccos(L0) + (Ds[1,ii]+k*us[1,ii])*Csin(L0), Ds[2,ii]+k*us[2,ii]
__pyx_t_268 = 0;
__pyx_t_269 = __pyx_v_ii;
__pyx_t_270 = 0;
__pyx_t_271 = __pyx_v_ii;
__pyx_t_272 = 1;
__pyx_t_273 = __pyx_v_ii;
__pyx_t_274 = 1;
__pyx_t_275 = __pyx_v_ii;
__pyx_t_14 = ((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_268 * __pyx_v_Ds.strides[0]) )) + __pyx_t_269)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_270 * __pyx_v_us.strides[0]) )) + __pyx_t_271)) ))))) * cos(__pyx_v_L0)) + (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_272 * __pyx_v_Ds.strides[0]) )) + __pyx_t_273)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_274 * __pyx_v_us.strides[0]) )) + __pyx_t_275)) ))))) * sin(__pyx_v_L0)));
__pyx_t_276 = 2;
__pyx_t_277 = __pyx_v_ii;
__pyx_t_278 = 2;
__pyx_t_279 = __pyx_v_ii;
__pyx_t_107 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_276 * __pyx_v_Ds.strides[0]) )) + __pyx_t_277)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_278 * __pyx_v_us.strides[0]) )) + __pyx_t_279)) )))));
__pyx_v_sol0 = __pyx_t_14;
__pyx_v_sol1 = __pyx_t_107;
+7396: if Path(VPoly.T).contains_point([sol0,sol1], transform=None, radius=0.0):
__Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Path); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_280 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_280, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_280) == 0)) __PYX_ERR(0, 7396, __pyx_L1_error) __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_280, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_280, 1); __pyx_t_280.memview = NULL; __pyx_t_280.data = NULL; __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_contains_point); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_sol0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sol1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 7396, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 7396, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 7396, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_12) { /* … */ }
7397: # Check PIn (POut not possible for limited torus)
+7398: sca = us[0,ii]*ephiIn0 + us[1,ii]*ephiIn1
__pyx_t_281 = 0;
__pyx_t_282 = __pyx_v_ii;
__pyx_t_283 = 1;
__pyx_t_284 = __pyx_v_ii;
__pyx_v_sca = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_281 * __pyx_v_us.strides[0]) )) + __pyx_t_282)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_283 * __pyx_v_us.strides[0]) )) + __pyx_t_284)) ))) * __pyx_v_ephiIn1));
+7399: if sca<=0 and k<kout:
__pyx_t_11 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_11) {
} else {
__pyx_t_12 = __pyx_t_11;
goto __pyx_L153_bool_binop_done;
}
__pyx_t_11 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_12 = __pyx_t_11;
__pyx_L153_bool_binop_done:;
if (__pyx_t_12) {
/* … */
goto __pyx_L152;
}
+7400: kout = k
__pyx_v_kout = __pyx_v_k;
+7401: indout = -1
__pyx_v_indout = -1;
+7402: Done = 1
__pyx_v_Done = 1;
+7403: elif sca>=0 and k<min(kin,kout):
__pyx_t_11 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_11) {
} else {
__pyx_t_12 = __pyx_t_11;
goto __pyx_L155_bool_binop_done;
}
__pyx_t_107 = __pyx_v_kout;
__pyx_t_14 = __pyx_v_kin;
if (((__pyx_t_107 < __pyx_t_14) != 0)) {
__pyx_t_13 = __pyx_t_107;
} else {
__pyx_t_13 = __pyx_t_14;
}
__pyx_t_11 = ((__pyx_v_k < __pyx_t_13) != 0);
__pyx_t_12 = __pyx_t_11;
__pyx_L155_bool_binop_done:;
if (__pyx_t_12) {
/* … */
}
__pyx_L152:;
+7404: kin = k
__pyx_v_kin = __pyx_v_k;
+7405: indin = -1
__pyx_v_indin = -1;
7406:
+7407: ephiIn0, ephiIn1 = Csin(L1), -Ccos(L1)
__pyx_t_13 = sin(__pyx_v_L1);
__pyx_t_107 = (-cos(__pyx_v_L1));
__pyx_v_ephiIn0 = __pyx_t_13;
__pyx_v_ephiIn1 = __pyx_t_107;
+7408: if Cabs(us[0,ii]*ephiIn0+us[1,ii]*ephiIn1)>EpsPlane:
__pyx_t_285 = 0;
__pyx_t_286 = __pyx_v_ii;
__pyx_t_287 = 1;
__pyx_t_288 = __pyx_v_ii;
__pyx_t_12 = ((fabs((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_285 * __pyx_v_us.strides[0]) )) + __pyx_t_286)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_287 * __pyx_v_us.strides[0]) )) + __pyx_t_288)) ))) * __pyx_v_ephiIn1))) > __pyx_v_EpsPlane) != 0);
if (__pyx_t_12) {
/* … */
}
+7409: k = -(Ds[0,ii]*ephiIn0+Ds[1,ii]*ephiIn1)/(us[0,ii]*ephiIn0+us[1,ii]*ephiIn1)
__pyx_t_289 = 0;
__pyx_t_290 = __pyx_v_ii;
__pyx_t_291 = 1;
__pyx_t_292 = __pyx_v_ii;
__pyx_t_293 = 0;
__pyx_t_294 = __pyx_v_ii;
__pyx_t_295 = 1;
__pyx_t_296 = __pyx_v_ii;
__pyx_v_k = ((-(((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_289 * __pyx_v_Ds.strides[0]) )) + __pyx_t_290)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_291 * __pyx_v_Ds.strides[0]) )) + __pyx_t_292)) ))) * __pyx_v_ephiIn1))) / (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_293 * __pyx_v_us.strides[0]) )) + __pyx_t_294)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_295 * __pyx_v_us.strides[0]) )) + __pyx_t_296)) ))) * __pyx_v_ephiIn1)));
+7410: if k>=0:
__pyx_t_12 = ((__pyx_v_k >= 0.0) != 0);
if (__pyx_t_12) {
/* … */
}
+7411: sol0, sol1 = (Ds[0,ii]+k*us[0,ii])*Ccos(L1) + (Ds[1,ii]+k*us[1,ii])*Csin(L1), Ds[2,ii]+k*us[2,ii]
__pyx_t_297 = 0;
__pyx_t_298 = __pyx_v_ii;
__pyx_t_299 = 0;
__pyx_t_300 = __pyx_v_ii;
__pyx_t_301 = 1;
__pyx_t_302 = __pyx_v_ii;
__pyx_t_303 = 1;
__pyx_t_304 = __pyx_v_ii;
__pyx_t_107 = ((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_297 * __pyx_v_Ds.strides[0]) )) + __pyx_t_298)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_299 * __pyx_v_us.strides[0]) )) + __pyx_t_300)) ))))) * cos(__pyx_v_L1)) + (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_301 * __pyx_v_Ds.strides[0]) )) + __pyx_t_302)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_303 * __pyx_v_us.strides[0]) )) + __pyx_t_304)) ))))) * sin(__pyx_v_L1)));
__pyx_t_305 = 2;
__pyx_t_306 = __pyx_v_ii;
__pyx_t_307 = 2;
__pyx_t_308 = __pyx_v_ii;
__pyx_t_13 = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_305 * __pyx_v_Ds.strides[0]) )) + __pyx_t_306)) ))) + (__pyx_v_k * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_307 * __pyx_v_us.strides[0]) )) + __pyx_t_308)) )))));
__pyx_v_sol0 = __pyx_t_107;
__pyx_v_sol1 = __pyx_t_13;
7412: # Check if in VPoly
+7413: if Path(VPoly.T).contains_point([sol0,sol1], transform=None, radius=0.0):
__Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Path); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_280 = __pyx_v_VPoly; __PYX_INC_MEMVIEW(&__pyx_t_280, 1); if (unlikely(__pyx_memslice_transpose(&__pyx_t_280) == 0)) __PYX_ERR(0, 7413, __pyx_L1_error) __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_t_280, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __PYX_XDEC_MEMVIEW(&__pyx_t_280, 1); __pyx_t_280.memview = NULL; __pyx_t_280.data = NULL; __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_contains_point); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_4 = PyFloat_FromDouble(__pyx_v_sol0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_sol1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_transform, Py_None) < 0) __PYX_ERR(0, 7413, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_radius, __pyx_float_0_0) < 0) __PYX_ERR(0, 7413, __pyx_L1_error) __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 7413, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; if (__pyx_t_12) { /* … */ }
7414: # Check PIn (POut not possible for limited torus)
+7415: sca = us[0,ii]*ephiIn0 + us[1,ii]*ephiIn1
__pyx_t_309 = 0;
__pyx_t_310 = __pyx_v_ii;
__pyx_t_311 = 1;
__pyx_t_312 = __pyx_v_ii;
__pyx_v_sca = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_309 * __pyx_v_us.strides[0]) )) + __pyx_t_310)) ))) * __pyx_v_ephiIn0) + ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_311 * __pyx_v_us.strides[0]) )) + __pyx_t_312)) ))) * __pyx_v_ephiIn1));
+7416: if sca<=0 and k<kout:
__pyx_t_11 = ((__pyx_v_sca <= 0.0) != 0);
if (__pyx_t_11) {
} else {
__pyx_t_12 = __pyx_t_11;
goto __pyx_L161_bool_binop_done;
}
__pyx_t_11 = ((__pyx_v_k < __pyx_v_kout) != 0);
__pyx_t_12 = __pyx_t_11;
__pyx_L161_bool_binop_done:;
if (__pyx_t_12) {
/* … */
goto __pyx_L160;
}
+7417: kout = k
__pyx_v_kout = __pyx_v_k;
+7418: indout = -2
__pyx_v_indout = -2;
+7419: Done = 1
__pyx_v_Done = 1;
+7420: elif sca>=0 and k<min(kin,kout):
__pyx_t_11 = ((__pyx_v_sca >= 0.0) != 0);
if (__pyx_t_11) {
} else {
__pyx_t_12 = __pyx_t_11;
goto __pyx_L163_bool_binop_done;
}
__pyx_t_13 = __pyx_v_kout;
__pyx_t_107 = __pyx_v_kin;
if (((__pyx_t_13 < __pyx_t_107) != 0)) {
__pyx_t_14 = __pyx_t_13;
} else {
__pyx_t_14 = __pyx_t_107;
}
__pyx_t_11 = ((__pyx_v_k < __pyx_t_14) != 0);
__pyx_t_12 = __pyx_t_11;
__pyx_L163_bool_binop_done:;
if (__pyx_t_12) {
/* … */
}
__pyx_L160:;
+7421: kin = k
__pyx_v_kin = __pyx_v_k;
+7422: indin = -2
__pyx_v_indin = -2;
7423:
+7424: if Done==1:
__pyx_t_12 = ((__pyx_v_Done == 1) != 0);
if (__pyx_t_12) {
/* … */
}
}
+7425: SOut[0,ii] = Ds[0,ii] + kout*us[0,ii]
__pyx_t_313 = 0;
__pyx_t_314 = __pyx_v_ii;
__pyx_t_315 = 0;
__pyx_t_316 = __pyx_v_ii;
__pyx_t_317 = 0;
__pyx_t_318 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_317 * __pyx_v_SOut.strides[0]) )) + __pyx_t_318)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_313 * __pyx_v_Ds.strides[0]) )) + __pyx_t_314)) ))) + (__pyx_v_kout * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_315 * __pyx_v_us.strides[0]) )) + __pyx_t_316)) )))));
+7426: SOut[1,ii] = Ds[1,ii] + kout*us[1,ii]
__pyx_t_319 = 1;
__pyx_t_320 = __pyx_v_ii;
__pyx_t_321 = 1;
__pyx_t_322 = __pyx_v_ii;
__pyx_t_323 = 1;
__pyx_t_324 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_323 * __pyx_v_SOut.strides[0]) )) + __pyx_t_324)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_319 * __pyx_v_Ds.strides[0]) )) + __pyx_t_320)) ))) + (__pyx_v_kout * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_321 * __pyx_v_us.strides[0]) )) + __pyx_t_322)) )))));
+7427: SOut[2,ii] = Ds[2,ii] + kout*us[2,ii]
__pyx_t_325 = 2;
__pyx_t_326 = __pyx_v_ii;
__pyx_t_327 = 2;
__pyx_t_328 = __pyx_v_ii;
__pyx_t_329 = 2;
__pyx_t_330 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_329 * __pyx_v_SOut.strides[0]) )) + __pyx_t_330)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_325 * __pyx_v_Ds.strides[0]) )) + __pyx_t_326)) ))) + (__pyx_v_kout * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_327 * __pyx_v_us.strides[0]) )) + __pyx_t_328)) )))));
+7428: phi = Catan2(SOut[1,ii],SOut[0,ii])
__pyx_t_331 = 1;
__pyx_t_332 = __pyx_v_ii;
__pyx_t_333 = 0;
__pyx_t_334 = __pyx_v_ii;
__pyx_v_phi = atan2((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_331 * __pyx_v_SOut.strides[0]) )) + __pyx_t_332)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SOut.data + __pyx_t_333 * __pyx_v_SOut.strides[0]) )) + __pyx_t_334)) ))));
+7429: if indout==-1:
switch (__pyx_v_indout) {
case -1L:
/* … */
break;
case -2L:
+7430: VPerpOut[0,ii] = -Csin(L0)
__pyx_t_335 = 0;
__pyx_t_336 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_335 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_336)) )) = (-sin(__pyx_v_L0));
+7431: VPerpOut[1,ii] = Ccos(L0)
__pyx_t_337 = 1;
__pyx_t_338 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_337 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_338)) )) = cos(__pyx_v_L0);
+7432: VPerpOut[2,ii] = 0.
__pyx_t_339 = 2;
__pyx_t_340 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_339 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_340)) )) = 0.;
+7433: elif indout==-2:
break;
default:
+7434: VPerpOut[0,ii] = Csin(L1)
__pyx_t_341 = 0;
__pyx_t_342 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_341 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_342)) )) = sin(__pyx_v_L1);
+7435: VPerpOut[1,ii] = -Ccos(L1)
__pyx_t_343 = 1;
__pyx_t_344 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_343 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_344)) )) = (-cos(__pyx_v_L1));
+7436: VPerpOut[2,ii] = 0.
__pyx_t_345 = 2;
__pyx_t_346 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_345 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_346)) )) = 0.;
7437: else:
+7438: VPerpOut[0,ii] = Ccos(phi)*vIn[0,indout]
__pyx_t_347 = 0;
__pyx_t_348 = __pyx_v_indout;
__pyx_t_349 = 0;
__pyx_t_350 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_349 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_350)) )) = (cos(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_347 * __pyx_v_vIn.strides[0]) )) + __pyx_t_348)) ))));
+7439: VPerpOut[1,ii] = Csin(phi)*vIn[0,indout]
__pyx_t_351 = 0;
__pyx_t_352 = __pyx_v_indout;
__pyx_t_353 = 1;
__pyx_t_354 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_353 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_354)) )) = (sin(__pyx_v_phi) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_351 * __pyx_v_vIn.strides[0]) )) + __pyx_t_352)) ))));
+7440: VPerpOut[2,ii] = vIn[1,indout]
__pyx_t_355 = 1;
__pyx_t_356 = __pyx_v_indout;
__pyx_t_357 = 2;
__pyx_t_358 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpOut.data + __pyx_t_357 * __pyx_v_VPerpOut.strides[0]) )) + __pyx_t_358)) )) = (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_355 * __pyx_v_vIn.strides[0]) )) + __pyx_t_356)) )));
break;
}
+7441: indOut[ii] = indout
__pyx_t_359 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_indOut.data) + __pyx_t_359)) )) = __pyx_v_indout;
+7442: if kin<kout:
__pyx_t_12 = ((__pyx_v_kin < __pyx_v_kout) != 0);
if (__pyx_t_12) {
/* … */
}
+7443: SIn[0,ii] = Ds[0,ii] + kin*us[0,ii]
__pyx_t_360 = 0;
__pyx_t_361 = __pyx_v_ii;
__pyx_t_362 = 0;
__pyx_t_363 = __pyx_v_ii;
__pyx_t_364 = 0;
__pyx_t_365 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_364 * __pyx_v_SIn.strides[0]) )) + __pyx_t_365)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_360 * __pyx_v_Ds.strides[0]) )) + __pyx_t_361)) ))) + (__pyx_v_kin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_362 * __pyx_v_us.strides[0]) )) + __pyx_t_363)) )))));
+7444: SIn[1,ii] = Ds[1,ii] + kin*us[1,ii]
__pyx_t_366 = 1;
__pyx_t_367 = __pyx_v_ii;
__pyx_t_368 = 1;
__pyx_t_369 = __pyx_v_ii;
__pyx_t_370 = 1;
__pyx_t_371 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_370 * __pyx_v_SIn.strides[0]) )) + __pyx_t_371)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_366 * __pyx_v_Ds.strides[0]) )) + __pyx_t_367)) ))) + (__pyx_v_kin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_368 * __pyx_v_us.strides[0]) )) + __pyx_t_369)) )))));
+7445: SIn[2,ii] = Ds[2,ii] + kin*us[2,ii]
__pyx_t_372 = 2;
__pyx_t_373 = __pyx_v_ii;
__pyx_t_374 = 2;
__pyx_t_375 = __pyx_v_ii;
__pyx_t_376 = 2;
__pyx_t_377 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_376 * __pyx_v_SIn.strides[0]) )) + __pyx_t_377)) )) = ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_Ds.data + __pyx_t_372 * __pyx_v_Ds.strides[0]) )) + __pyx_t_373)) ))) + (__pyx_v_kin * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_us.data + __pyx_t_374 * __pyx_v_us.strides[0]) )) + __pyx_t_375)) )))));
+7446: phi = Catan2(SIn[1,ii],SIn[0,ii])
__pyx_t_378 = 1;
__pyx_t_379 = __pyx_v_ii;
__pyx_t_380 = 0;
__pyx_t_381 = __pyx_v_ii;
__pyx_v_phi = atan2((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_378 * __pyx_v_SIn.strides[0]) )) + __pyx_t_379)) ))), (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_SIn.data + __pyx_t_380 * __pyx_v_SIn.strides[0]) )) + __pyx_t_381)) ))));
+7447: if indin==-1:
switch (__pyx_v_indin) {
case -1L:
/* … */
break;
case -2L:
+7448: VPerpIn[0,ii] = Csin(L0)
__pyx_t_382 = 0;
__pyx_t_383 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_382 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_383)) )) = sin(__pyx_v_L0);
+7449: VPerpIn[1,ii] = -Ccos(L0)
__pyx_t_384 = 1;
__pyx_t_385 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_384 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_385)) )) = (-cos(__pyx_v_L0));
+7450: VPerpIn[2,ii] = 0.
__pyx_t_386 = 2;
__pyx_t_387 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_386 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_387)) )) = 0.;
+7451: elif indin==-2:
break;
default:
+7452: VPerpIn[0,ii] = -Csin(L1)
__pyx_t_388 = 0;
__pyx_t_389 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_388 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_389)) )) = (-sin(__pyx_v_L1));
+7453: VPerpIn[1,ii] = Ccos(L1)
__pyx_t_390 = 1;
__pyx_t_391 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_390 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_391)) )) = cos(__pyx_v_L1);
+7454: VPerpIn[2,ii] = 0.
__pyx_t_392 = 2;
__pyx_t_393 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_392 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_393)) )) = 0.;
7455: else:
+7456: VPerpIn[0,ii] = -Ccos(phi)*vIn[0,indin]
__pyx_t_394 = 0;
__pyx_t_395 = __pyx_v_indin;
__pyx_t_396 = 0;
__pyx_t_397 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_396 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_397)) )) = ((-cos(__pyx_v_phi)) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_394 * __pyx_v_vIn.strides[0]) )) + __pyx_t_395)) ))));
+7457: VPerpIn[1,ii] = -Csin(phi)*vIn[0,indin]
__pyx_t_398 = 0;
__pyx_t_399 = __pyx_v_indin;
__pyx_t_400 = 1;
__pyx_t_401 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_400 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_401)) )) = ((-sin(__pyx_v_phi)) * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_398 * __pyx_v_vIn.strides[0]) )) + __pyx_t_399)) ))));
+7458: VPerpIn[2,ii] = -vIn[1,indin]
__pyx_t_402 = 1;
__pyx_t_403 = __pyx_v_indin;
__pyx_t_404 = 2;
__pyx_t_405 = __pyx_v_ii;
*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_VPerpIn.data + __pyx_t_404 * __pyx_v_VPerpIn.strides[0]) )) + __pyx_t_405)) )) = (-(*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_vIn.data + __pyx_t_402 * __pyx_v_vIn.strides[0]) )) + __pyx_t_403)) ))));
break;
}
+7459: indIn[ii] = indin
__pyx_t_406 = __pyx_v_ii;
*((double *) ( /* dim=0 */ ((char *) (((double *) __pyx_v_indIn.data) + __pyx_t_406)) )) = __pyx_v_indin;
7460:
+7461: return np.asarray(SIn), np.asarray(SOut), np.asarray(VPerpIn), np.asarray(VPerpOut), np.asarray(indIn), np.asarray(indOut)
__Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_SIn, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_1)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_1); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_SOut, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_18 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_1); if (likely(__pyx_t_18)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); __Pyx_INCREF(__pyx_t_18); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_1, function); } } __pyx_t_2 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_18, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_VPerpIn, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_18))) { __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_18); if (likely(__pyx_t_15)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); __Pyx_INCREF(__pyx_t_15); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_18, function); } } __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_15, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_3); __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_VPerpOut, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_15); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_15, function); } } __pyx_t_18 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_indIn, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_16)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_16); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_15 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_16, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_3); __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_asarray); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_indOut, 1, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_407 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_16))) { __pyx_t_407 = PyMethod_GET_SELF(__pyx_t_16); if (likely(__pyx_t_407)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16); __Pyx_INCREF(__pyx_t_407); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_16, function); } } __pyx_t_5 = (__pyx_t_407) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_407, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_3); __Pyx_XDECREF(__pyx_t_407); __pyx_t_407 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; __pyx_t_16 = PyTuple_New(6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 7461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_16); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_16, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_16, 2, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_16, 3, __pyx_t_18); __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 4, __pyx_t_15); __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_16, 5, __pyx_t_5); __pyx_t_4 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_18 = 0; __pyx_t_15 = 0; __pyx_t_5 = 0; __pyx_r = __pyx_t_16; __pyx_t_16 = 0; goto __pyx_L0;